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也很方便,遍歷枚舉也可以簡化很多地方的代碼

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