- 我找到了一些核心概念的代码,但我需要知道这个枚举类背后的概念。
- 任何人都可以告诉枚举类和静态方法是如何工作的,以及这个概念的任何合适的例子。
代码:
enum EBtnSts
{
static
{
ePlayBtn = new EBtnSts("ePlayBtn", 1);
EBtnSts[] arrayOfEBtnSts = new EBtnSts[0];
arrayOfEBtnSts[0] = ePlayBtn;
}
}
这是对 a 的疯狂使用static initializer
,您应该真正避免。一方面,这肯定会引发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.
其次,该代码将 a 实现enum
为普通类。避免。该变量ePlayBtn
应该是一个枚举常量。enum
包含您在构造函数中传递的值的字段中应该有 2 个字段。并且不要像那样调用构造函数。
此外,数组的创建是完全没有意义的。您可以values()
使用enum
.
更好地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();
}
您可以在此处了解有关枚举类型的更多信息。