本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看 活动链接
问题:创建字符串枚举的最好方法
用一个枚举类型去表示一组字符串的最好方法是什么
我尝试这样:
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()
*/
@Override
public 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:stackoverflow.com/questions/3…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END