Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 枚举中的空静态方法 我找到了一些核心概念的代码,但我需要知道这个枚举类背后的概念 请任何人告诉我枚举类和静态方法是如何工作的,以及这个概念的合适例子_Java_Android_Enums - Fatal编程技术网

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编译器不拒绝此尝试?