什么時候想用枚舉類型:
在設(shè)計一個java model對象的時候,你需要一些具體的常量字符串之類的東西,這個東西又沒必要跟整個項目的全局常量放在一起,就放在model的java文件里面是最合適的,那么,你可以有兩種選擇:
1,在java model文件里面,定義public final static XXXX = "" ;
這種就是全局靜態(tài)變量,通過類名就可以直接訪問。
2,還是在java model 文件里面,定義個枚舉類型 public enum XXXX{a,b,c,d,e,f};
什么時候,如何使用:
當在和前臺傳過來的數(shù)據(jù)或者在邏輯操作的代碼里面需要去用到這個常量值去做比較的時候,就是使用枚舉類型的時候。
一般形式是: 類名.枚舉類型名.單個枚舉類型
用上面的例子(假設(shè)在一個叫A的model java文件里面),
則為A.XXXX.a.toString();
就可以這么使用了。
怎么循環(huán)一個枚舉類型。
枚舉有一個方法,values(),
使用形式如: int length = XXXX.values().length
返回的是一個類型與枚舉類型一致的數(shù)組。
然后就可以循環(huán)這個數(shù)組。
就是循環(huán)枚舉類型了。
public class Meiju{ public enum Weekends{MON, TUE, WED, THU, FRI, SAT, SUN;} public static void main(String[] args){ //循環(huán)方法一 for(Weekends e:Weekends.values()){ System.out.println(e); } //循環(huán)方法二 for(int i=0;i<Weekends.values().length;i++){ System.out.println(Weekends.values()[i]); } } }
在枚舉類型中添加構(gòu)造方法
public class EnumTest { enum Weekends { MON(1, "星期一"), TUE(2, "星期二"), WED(3, "星期三"); private final int value; private final String description; private Weekends(int value, String description) { this.value = value; this.description = description; } public int getValue() { return this.value; } public String getDescription() { return this.description; } public static Weekends valueOf(int value) { switch (value) { case 1: return Weekends.MON; case 2: return Weekends.TUE; case 3: return Weekends.WED; default: return null; } } } public static void main(String[] args) { for (Weekends w : Weekends.values()) { System.out.println("枚舉成員:" + w + " 值:" + w.getValue() + " 描述:" + w.getDescription()); } System.out.println("值轉(zhuǎn)換成枚舉:" + Weekends.valueOf(2)); System.out.println("字符串轉(zhuǎn)換成枚舉:" + Weekends.valueOf("TUE")); } }
結(jié)果如下:
枚舉成員:MON 值:1 描述:星期一
枚舉成員:TUE 值:2 描述:星期二
枚舉成員:WED 值:3 描述:星期三
值轉(zhuǎn)換成枚舉:TUE
字符串轉(zhuǎn)換成枚舉:TUE