我怎样才能声明枚举使用java

我想将这个示例C#代码转换成一个Java代码:

public enum myEnum { ONE = "one", TWO = "two", }; 

因为我想把这个常量类改成enum

 public final class TestConstants { public static String ONE = "one"; public static String TWO= "two"; } 
 public enum MyEnum { ONE(1), TWO(2); private int value; private MyEnum(int value) { this.value = value; } public int getValue() { return value; } } 

简而言之 – 只要提供构造函数参数(并将值设置为各自的字段),您就可以为枚举定义任意数量的参数,

正如斯科特指出的 – 官方的枚举文件给你的答案。 始终从语言function和结构的官方文档开始。

更新:对于string唯一的区别是您的构造函数参数是String ,并且你用TEST("test")声明枚举

枚举是Java中的类 。 他们有一个隐含的序数值,从0开始。如果你想存储一个额外的字段,那么你就像其他任何类一样:

 public enum MyEnum { ONE(1), TWO(2); private final int value; private MyEnum(int value) { this.value = value; } public int getValue() { return this.value; } } 

很简单,如下所示:

 /** * @author The Elite Gentleman * */ public enum MyEnum { ONE("one"), TWO("two") ; private final String value; private MyEnum(final String value) { this.value = value; } public String getValue() { return value; } @Override public String toString() { // TODO Auto-generated method stub return getValue(); } } 

有关更多信息,请访问Oracle Java教程的Enumtypes 。 另外,请记住,枚举有私人构造函数。


更新 ,因为你已经更新了你的post,我已经把我的值从一个int更改为一个String
相关: Java String enum 。

 public enum MyEnum { ONE(1), TWO(2); private int value; private MyEnum(int val){ value = val; } public int getValue(){ return value; } } 

那么,在Java中,你也可以创build一个参数化的枚举。 假设你想创build一个className枚举,其中你需要存储classCode以及className,你可以这样做:

 public enum ClassEnum { ONE(1, "One"), TWO(2, "Two"), THREE(3, "Three"), FOUR(4, "Four"), FIVE(5, "Five") ; private int code; private String name; private ClassEnum(int code, String name) { this.code = code; this.name = name; } public int getCode() { return code; } public String getName() { return name; } } 
 public enum NewEnum { ONE("test"), TWO("test"); private String s; private NewEnum(String s) { this.s = s); } public String getS() { return this.s; } }