当我们代码中有静态常量的时候,可以把常量移动到枚举里
举一个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也很方便,遍历枚举也可以简化很多地方的代码