(枚舉) 在實戰中的基本用法

在項目中我們常常會碰到一些常量之類的死數據,但是爲了方便管理,我們最好都是不要直接寫死,不然等到要修改的時候就只能一條條的修改,那麼我們有沒有更加方便的方式去保存這些死數據呢,這裏我們就可以用到枚舉了

枚舉的特點:

  • 是一個特殊的類,擁有編譯安全、完全單利、和線程的安全

而且我們也可以寫一個接口枚舉例如:

public interface IEnum {
    String getCode();

    Integer getType();
}

之後對這個寫一個接口實現類

//我就寫一個遊戲類型的枚舉

public enum GameTypeEnum implements IEnum{
    /**
     * 網絡遊戲 1
     * 手機遊戲 2
     * 網頁遊戲 3
     * PC遊戲 4
     */
    ONLINEGAME("ONLINEGAME",1),
    PHONEGAME("PHONEGAME",2),
    WEBGAME("WEBGAME",3),
    PCGAME("PCGAME",4);

    /**
     * 枚舉標識碼
     */
    private String code;

    /**
     * 枚舉細節描述
     */
    private Integer type;


    @Override
    public String getCode(){
        return code;
    }

    @Override
    public Integer getType(){
        return type;
    }

    /**
     * 構造方法
     * @param code
     * @param type
     */
    GameTypeEnum(String code, Integer type){
        this.code = code;
        this.type = type;
    }

    /**
     * 獲取枚舉的方法
     * @param code 傳入枚舉的code
     * @return 返回枚舉
     */
    public static GameTypeEnum getInstance(String code){
        for (GameTypeEnum value : GameTypeEnum.values()){
            if(value.getCode().equals(code)){
                return value;
            }
        }
        return null;
    }
}

在使用的時候我們就可以直接調用獲取枚舉細節的方法,獲取到我們要的寫死的值

注意事項

  • 枚舉不能被new 、 反射 、序列化等操作
  • 枚舉不能被繼承
  • 枚舉是線程安全的
  • 枚舉默認繼承Enum
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章