- 我找到了一些核心概念的代码,但我需要了解这个枚举类背后的概念。
- 请任何人告诉我们枚举类和静态方法是如何工作的,以及这个概念的任何合适的例子。
代码:
enum EBtnSts
{
static
{
ePlayBtn = new EBtnSts("ePlayBtn", 1);
EBtnSts[] arrayOfEBtnSts = new EBtnSts[0];
arrayOfEBtnSts[0] = ePlayBtn;
}
}
最佳答案
这是对静态初始化器
的疯狂使用,您应该真正避免这种情况。其一,这肯定会抛出 ArrayIndexOutOfBounds 异常。
EBtnSts[] arrayOfEBtnSts = new EBtnSts[0]; // Creates an array of length 0
arrayOfEBtnSts[0] = ePlayBtn; // You can't access any index of 0 length array.
其次,该代码将 enum
实现为普通类。避免。变量ePlayBtn
应该是一个枚举常量。 enum
中应该有 2 个字段,其中包含您在构造函数中传递的值。并且不要像那样调用构造函数。
此外,数组的创建完全没有意义。您可以使用 enum
的 values()
方法直接获取枚举常量数组。
enum
更好地实现为:
enum EBtnSts {
E_PLAY_BTN("ePlayBtn", 1);
private final String value;
private final int id;
private EBtnSts(String value, int id) {
this.value = value;
this.id = id;
}
private final EBtnSts[] VALUES = values();
}
您可以了解更多关于enum types here.的信息
关于java - Enum 中的空静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19357352/