當我們代碼中有靜態常量的時候,可以把常量移動到枚舉裏
舉一個key value形式的枚舉例子
如 一週七天 要做七件事
public enum Day{
d1("d1", "打球"),
d1("d1", "玩遊戲"),
d3("d3", "吃飯"),
d4("d4", "睡覺"),
d5("d5", "看電視"),
d6("d6", "聽歌"),
d7("d7", "看電影"),;
public static HashMap<String, String> day7= new HashMap<String, String>() {{
}};
//此處代碼能夠把所有枚舉轉化爲map,然後就可以day7.get(Day.d1.getIndex()) 獲取到值
static {
for (Header e : Header.values()) {
day7.put(e.getIndex(),e.getName());
}
}
// 成員變量
private String index;
private String name;
// 構造方法
Header(String index, String name) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(String index) {
for (Header c : Header.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIndex() {
return index;
}
public void setIndex(String index) {
this.index = index;
}
}
在使用的時候,我們可以Day.d1.getindex()
獲取到key,Day.d1.getName()
獲取到值
這麼寫的好處是可以直接Day.xxx 獲取到想要的元素,比數組arry[0]這種方式要直觀,並且初始化map也很方便,遍歷枚舉也可以簡化很多地方的代碼