我怎样才能声明枚举使用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; } }