问题:创建字符串枚举的最好方法
用一个枚举类型去表示一组字符串的最好方法是什么
我尝试这样:
enum Strings{STRING_ONE("ONE"), STRING_TWO("TWO")
}
我怎么样才可以像使用字符串那样使用它们?
回答一
我不知道你想干嘛,但是我可以转换你的样例代码为:
package test;/*** @author The Elite Gentleman**/
public enum Strings {STRING_ONE("ONE"),STRING_TWO("TWO");private final String text;/*** @param text*/Strings(final String text) {this.text = text;}/* (non-Javadoc)* @see java.lang.Enum#toString()*/@Overridepublic String toString() {return text;}
}
或者,你可以写个getter方法去获取文本
你可以使用 Strings.STRING_ONE.toString();
了
回答二
使用name()
方法生产 ONE
public class Main {public static void main(String[] args) throws Exception {System.out.println(Strings.ONE.name());}
}enum Strings {ONE, TWO, THREE
}
回答三
你可以这样使用字符串枚举
public enum EnumTest {NAME_ONE("Name 1"),NAME_TWO("Name 2");private final String name;/*** @param name*/private EnumTest(final String name) {this.name = name;}public String getName() {return name;}
}
并且在主函数里面调用
public class Test {public static void main (String args[]){System.out.println(EnumTest.NAME_ONE.getName());System.out.println(EnumTest.NAME_TWO.getName());}
}
回答四
你可以直接把枚举的名称设置得和你相要的那个字符串相同,或者,更加通常来说,你可以将任何属性和你的枚举值关联起来
enum Strings {STRING_ONE("ONE"), STRING_TWO("TWO");private final String stringValue;Strings(final String s) { stringValue = s; }public String toString() { return stringValue; }// further methods, attributes, etc.
}
将常量放在底部,而方法和属性放在下面是很重要的。
回答五
用缺省值进行get和set
public enum Status {STATUS_A("Status A"), STATUS_B("Status B"),private String status;Status(String status) {this.status = status;}public String getStatus() {return status;}
}
文章翻译自Stack Overflow:https://stackoverflow.com/questions/3978654/best-way-to-create-enum-of-strings