1. 程式人生 > >java enum在switch中的使用

java enum在switch中的使用

實際開發中,很多人可能很少用列舉型別。更多的可能使用常量的方式代替。但列舉比起常量來說,含義更清晰,更容易理解,結構上也更加緊密。看其他人的博文都很詳細,長篇大論的,這裡理論的東西不說了,一起看看在實際開發中比較常見的用法,簡單明瞭。

 

看看列舉類


    /**
     * 操作碼類
     * @author kokJuis
     * @version 1.0
     * @date 2017-3-6
     */
    public enum Code {
     
        SUCCESS(10000, "操作成功"),
        FAIL(10001, "操作失敗"),
     
     
        private int code;
        private String msg;
     
        //為了更好的返回代號和說明,必須呀重寫構造方法
        private Code(int code, String msg) {
            this.code = code;
            this.msg = msg;
        }
     
        public int getCode() {
            return code;
        }
     
        public void setCode(int code) {
            this.code = code;
        }
     
        public String getMsg() {
            return msg;
        }
     
        public void setMsg(String msg) {
            this.msg = msg;
        }
     
        
        // 根據value返回列舉型別,主要在switch中使用
        public static Code getByValue(int value) {
            for (Code code : values()) {
                if (code.getCode() == value) {
                    return code;
                }
            }
            return null;
        }
        
    }


使用:

    //獲取程式碼
    int code=Code.SUCCESS.getCode();
    //獲取程式碼對應的資訊
    String msg=Code.SUCCESS.getMsg();
     
    //在switch中使用通常需要先獲取列舉型別才判斷,因為case中是常量或者int、byte、short、char,寫其他程式碼編譯是不通過的
     
    int code=Code.SUCCESS.getCode();
     
    switch (Code.getByValue(code)) {
     
        case SUCCESS:
            //......
        break;
     
        case FAIL:
            //......
        break;
     
    }