在Java中枚舉和其他類一樣,只是多了預(yù)定義的對(duì)象集合。下面幾個(gè)例子強(qiáng)調(diào)如何使用Java的枚舉。
1.簡(jiǎn)單例子
public enum Color {
RED, YELLOW, BLUE; //each is an instance of Color
}
public class Test {
public static void main(String[] args) {
for(Color color: Color.values()){
System.out.println(color);
}
}
}
輸出:
RED
YELLOW
BLUE
2.有構(gòu)造函數(shù)
public enum Color {
RED(1), YELLOW(2), BLUE(3); //each is an instance of Color
private int value;
private Color(){}
private Color(int i){
this.value = i;
}
//define instance method
public void printValue(){
System.out.println(this.value);
}
}
public class Test {
public static void main(String[] args) {
for(Color color: Color.values()){
color.printValue();
}
}
}
輸出:
1
2
3
3.什么時(shí)候用Java枚舉
枚舉類型是特殊的數(shù)據(jù)類型,它讓一個(gè)變量稱為預(yù)定義常量。這個(gè)變量必須等于這些預(yù)定義值的一個(gè)。
一個(gè)好的應(yīng)用實(shí)例是可以防止非法參數(shù)的可能性。舉個(gè)例子,想下下面的方法:
public void doSomethingWithColor(int color);
此方法不明確,開(kāi)發(fā)人員不知道用什么值。
如果你有枚舉型的類Color ,有BLACK、RED等,方法變成:
public void doSomethingWithColor(Color color);
顯然調(diào)用這個(gè)方法,更可讀。