2014-01-09 82 views
1

问题我怎么能这样说:有关枚举在Java中

System.out.println(Enum.ATESTSTRING + " is a test string!"); 

,而不是:

System.out.println(Enum.ATESTSTRING.getString() + " is a test string!"); 

谢谢!

回答

6

覆盖toString()方法在enum

enum MyEnum { 
    ATESTSTRING("A test String"); 

    private final String value; 

    MyEnum(String value) { this.value = value; } 

    @Override 
    public String toString() {return value; } 
} 
+0

谢谢,我会的时候会给出最好的答案! – user2932566

+0

如果您每次都返回文字枚举,那么最好使用Enum类(默认的'toString()'或'name()')中内置的默认选项,而不是添加私有属性并重写'toString( )'每次。 – mdl

+0

@mdl是的没错。但是通过这种方法,OP可以为他/她想要的价值赋予任何价值。我只是把它这样说明。 –

1

Enum.ATESTSTRING.toString()Enum.ATESTSTRING.name()(如果你想用你的toString()别的东西)。

name()方法属于the Enum class,因此,所有的枚举值自动具有可用此方法。

0

默认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