enum類自定義屬性
這就是enum比static靜態變量好用的地方了,可以賦予每一個枚舉值若干個屬性,例如
實例1:
public enum GasStationChannel { ZH("中化", "100001"), APP("APP", "100002"), QZ("撬裝", "100003"), ZYW("找油網", "100004"), YZG("油掌櫃", "100005"), YZX("油戰線", "100006"), SHELL("殼牌", "100007"), CHEBEI("車唄", "100008"), SHANGAO("山東高速", "100009"), GUANDE("冠德", "100010"); private String name; private String code; GasStationChannel(String name, String code) { this.name = name; this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public static GasStationChannel parse(String code) { if(code==null){ return null; } for (GasStationChannel channelType : GasStationChannel.values()) { if (channelType.getCode().equals(code)) { return channelType; } } return null; } @Override public String toString() { return "name:"+this.name+",code:"+this.code; }}
實例2:
public enum Domain { XB("11","西北"), HD("13","華東"), DB("14","東北"), HB("15","華北"); private String code; private String name; Domain(String code,String name) { this.code = code; this.name = name; } public String getCode() { return code; } public String getName(){ return name; } /** * 根據domain code,返回枚舉類型 */ public static Domain getDomain(String code) throws Exception { Domain domain = null; switch (code.trim()) { case "11": domain = XB; break; case "13": domain = HD; break; case "14": domain = DB; break; case "15": domain = HB; break; default: throw new Exception(String.format("傳入的域ID[%s]不存在,請檢查!", code)); } return domain; } }
以上兩種都能實現,根據個人喜好選擇,個人更傾向於實例1,代碼結構更優美