Java 枚举中的空静态方法 我找到了一些核心概念的代码,但我需要知道这个枚举类背后的概念 请任何人告诉我枚举类和静态方法是如何工作的,以及这个概念的合适例子
代码:Java 枚举中的空静态方法 我找到了一些核心概念的代码,但我需要知道这个枚举类背后的概念 请任何人告诉我枚举类和静态方法是如何工作的,以及这个概念的合适例子,java,android,enums,Java,Android,Enums,代码: enum EBtnSts { static { ePlayBtn = new EBtnSts("ePlayBtn", 1); EBtnSts[] arrayOfEBtnSts = new EBtnSts[0]; arrayOfEBtnSts[0] = ePlayBtn; } } 这是对静态初始值设定项的疯狂使用,您应该真正避免使用它。首先,这肯定会引发一个ArrayIndexOutOfBounds异常 EBtnSts[] arrayOfEBtnS
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
中应该有两个字段,其中包含要传入构造函数的值。不要像那样调用构造函数
此外,数组的创建完全没有意义。您可以使用enum
的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();
}
您可以了解更多有关的信息,这是对静态初始值设定项的疯狂使用,您应该真正避免使用它。首先,这肯定会引发一个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
中应该有两个字段,其中包含要传入构造函数的值。不要像那样调用构造函数
此外,数组的创建完全没有意义。您可以使用enum
的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();
}
您可以了解有关@SSP的更多信息,请勿在此处引用任意第三方网站作为参考。他们不是。参考资料应该是JLS、JVM规范或公认的教程或书籍point@SSP这里不要引用任意的第三方网站作为参考。他们不是。应该只参考JLS、JVM规范或公认的教程或书籍。好的,谢谢你提出这一点“不要那样调用构造函数。”-有没有java编译器不拒绝这种尝试?“不要那样调用构造函数。”-是否有任何java编译器不拒绝此尝试?