2011-03-11 45 views

回答

2
enum MyConstants { 
    STR1("some text"), 
    STR2("some other text"); 

    private String value; 
    private MyConstants(String str) { 
    this.value = str; 
    } 
    public String getValue() { 
    return value; 
    } 
} 

然后使用它是这样的:

MyConstants.STR1.getValue(); 
+0

为什么'toString()'而不是'getValue()'? – jtahlborn 2011-03-11 01:34:51

+0

没有特别的理由。我只是展示了如何以类似于普通类的方式使用枚举,并且可以使用相同的模式存储多个枚举值的单个属性。 – iluxa 2011-03-11 01:42:25

0

我觉得这个页面会有所帮助: http://javahowto.blogspot.com/2006/10/custom-string-values-for-enum.html

简而言之:

public enum MyType { 
ONE { 
    public String toString() { 
     return "this is one"; 
    } 
}, 

TWO { 
    public String toString() { 
     return "this is two"; 
    } 
} 
} 
+0

与包含一串字符串的类相比,像这样使用枚举是否有优势? – user496949 2011-03-11 01:36:57

+3

你想用字符串做什么?举例来说,枚举可以用在switch语句中,并且可以有方法(甚至可以不同于每个枚举) – 2011-03-11 01:38:36

1
String [] messages = {"maybe you", "better go with", "an array?"}; 
System.out.println (messages[1]); 

如果没有进一步的知识 - e - 你为什么喜欢使用枚举?

+0

因为它们更好。阅读此:http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html – iluxa 2011-03-11 01:43:47

+0

更好的是什么?用于存储字符串?当然不是。 – 2011-03-11 01:45:13

+0

对于编译时安全类型 - Joshua Bloch – sarahTheButterFly 2011-03-11 04:26:56