hjr-JAVA 枚举的使用技巧

当我们代码中有静态常量的时候,可以把常量移动到枚举里

举一个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也很方便,遍历枚举也可以简化很多地方的代码

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章