问题我怎么能这样说:有关枚举在Java中
System.out.println(Enum.ATESTSTRING + " is a test string!");
,而不是:
System.out.println(Enum.ATESTSTRING.getString() + " is a test string!");
谢谢!
问题我怎么能这样说:有关枚举在Java中
System.out.println(Enum.ATESTSTRING + " is a test string!");
,而不是:
System.out.println(Enum.ATESTSTRING.getString() + " is a test string!");
谢谢!
覆盖toString()
方法在enum
:
enum MyEnum {
ATESTSTRING("A test String");
private final String value;
MyEnum(String value) { this.value = value; }
@Override
public String toString() {return value; }
}
Enum.ATESTSTRING.toString()
或Enum.ATESTSTRING.name()
(如果你想用你的toString()
别的东西)。
的name()
方法属于the Enum class,因此,所有的枚举值自动具有可用此方法。
默认Enum#toString将返回它的名字。你应该能够做你的第一个表达。字符串连接(+运算符)会自动调用toString。
enum TestEnum {
ATESTSTRING;
public static void main(String[] args) {
System.out.println(ATESTSTRING + " is a test string");
}
}
将输出ATESTSTRING is a test string
。
谢谢,我会的时候会给出最好的答案! – user2932566
如果您每次都返回文字枚举,那么最好使用Enum类(默认的'toString()'或'name()')中内置的默认选项,而不是添加私有属性并重写'toString( )'每次。 – mdl
@mdl是的没错。但是通过这种方法,OP可以为他/她想要的价值赋予任何价值。我只是把它这样说明。 –