枚举中的空静态方法

时间:2013-10-14 09:37:42

标签: java android enums

  • 我找到了一些核心概念的代码,但我需要知道这个枚举类背后的概念。
  • 请任何人都可以告诉枚举类和静态方法是如何工作的,并且也为这个概念提供合适的例子。

代码:

enum EBtnSts
{
  static
  {
    ePlayBtn = new EBtnSts("ePlayBtn", 1);

    EBtnSts[] arrayOfEBtnSts = new EBtnSts[0];
    arrayOfEBtnSts[0] = ePlayBtn;

  }
}

1 个答案:

答案 0 :(得分:5)

这是对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.

其次,该代码正在实现enum作为普通类。避免。变量ePlayBtn应该是枚举常量。 enum中应该有2个字段,包含您在构造函数中传递的值。并且不要像这样调用构造函数。

此外,数组的创建完全没有意义。您可以使用values()的{​​{1}}方法直接获取枚举常量数组。

enum更好地实现为:

enum

您可以详细了解enum types here.