public enum itemType{
  COMPANYY_WIDE("Company"),
  DEPARTMENTAL("Departmental"),
  PROJECT_SPECIFIC("Project");

  private String itemCode;

  private itemType(String dbCode){
      this.itemCode=dbCode;
  }

  public static void main(String[] args) {
      itemType type3=new itemType("Project");// line 1
      itemType type2=itemType.valueOf("PROJECT_SPECFIFIC");// line 2
      itemType type4=itemType.values()[0];// line 3
      itemType type1=itemType.DEPARTMENTAL;
   }
}


因此,枚举itemType有4种类型,每种类型都有一个属性itemcode,它也是dbcode。我主要尝试使用不同的方法来初始化枚举类型,但是我有些困惑。为什么第1行不起作用?为什么第2行和第3行会起作用?

最佳答案

在Java中,enum是具有固定数量对象的特殊类型类。

对于您的情况,itemType恰好具有三个名为COMPANYY_WIDEDEPARTMENTALPROJECT_SPECIFIC的对象。您不能在运行时为enum创建任何新对象。

您可以阅读此Java-Doc Java Enum

关于java - 枚举类型初始化Java中的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36562198/

10-12 18:44