中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java枚舉類在生產環境中怎么使用

發布時間:2022-02-07 10:13:30 來源:億速云 閱讀:109 作者:iii 欄目:開發技術

這篇文章主要講解了“Java枚舉類在生產環境中怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java枚舉類在生產環境中怎么使用”吧!

    使用

    大體分為確定業務場景狀態、定義枚舉類、自定義查詢方法、測試效果等幾個部分。

    1、確定業務場景狀態

    以我工作中實際的項目為例,智慧醫院在掛號、門診繳費時需要使用支付功能,我們目前實現了以下幾種支付形式:微信小程序支付、微信H5支付、支付寶小程序支付、支付寶生活號支付、微信醫保支付。
    那么,我們就可以針對這幾種支付形式定義一個枚舉類專門維護,今后需要新增、修改以及刪除時,只需要修改這個枚舉類即可。

    2、定義枚舉類

    public enum PayTypeEnum {
     
        WEI_XIN_MINI_APP("1", "wxma", "微信小程序支付"),
     
        WEI_XIN_H5("2", "wxh6", "微信H5支付"),
     
        ZFB_MINI_APP("3", "zfbma", "支付寶小程序支付"),
     
        ZFB_H5("4", "zfbh6", "支付寶生活號支付"),
     
        WEI_XIN_MEDICAL("5", "wxmedical", "微信醫保支付");
     
        private final String id;
        private final String code;
        private final String label;
     
        PayTypeEnum(final String id, final String code, final String label) {
            this.id = id;
            this.code = code;
            this.label = label;
        }
     
        public String getId() {
            return id;
        }
     
        public String getCode() {
            return code;
        }
     
        public String getLabel() {
            return label;
        }
     
    }

    3、自定義查詢方法

    枚舉類我們定義了id、code、label,那么我們使用過程中可能需要根據id獲取枚舉值、根據code獲取枚舉值(本人大部分時候都定義的這兩個),甚至根據label獲取枚舉值,因此可以根據需要自定義自己的查詢方法。

    /**
     * 根據id獲取枚舉對象
     * @param id 
     */
    public static PayTypeEnum findById(String id) {
        for (PayTypeEnum type : PayTypeEnum.values()) {
            if (type.getId().equals(id))
                return type;
        }
        return null;
    }
     
    /**
     * 根據code獲取枚舉對象
     * @param code 
     */
    public static PayTypeEnum findByCode(String code) {
        for (PayTypeEnum type : PayTypeEnum.values()) {
            if (type.getCode().equals(code))
                return type;
        }
        return null;
    }

    為了更完善,我們還可以再定義一個檢查枚舉類型的方法。

    /**
     * 檢查支付類型是否有效
     * @param id 
     */
    public static void check(String id) {
        if (StringUtils.isEmpty(id)) {
            throw new BadRequestAlertException("無效的支付類型", "PayTypeEnum", "無效的支付類型");
        }
        for (PayTypeEnum type : PayTypeEnum.values()) {
            if (type.getId().equals(id)) {
                return;
            }
        }
        throw new BadRequestAlertException("無效的支付類型", "PayTypeEnum", "無效的支付類型");
    }

    最終代碼如下:

    import com.web.rest.errors.BadRequestAlertException;
    import org.springframework.util.StringUtils;
     
    public enum PayTypeEnum {
     
        WEI_XIN_MINI_APP("1", "wxma", "微信小程序支付"),
     
        WEI_XIN_H5("2", "wxh6", "微信H5支付"),
     
        ZFB_MINI_APP("3", "zfbma", "支付寶小程序支付"),
     
        ZFB_H5("4", "zfbh6", "支付寶生活號支付"),
     
        WEI_XIN_MEDICAL("5", "wxmedical", "微信醫保支付");
     
        private final String id;
        private final String code;
        private final String label;
     
        PayTypeEnum(final String id, final String code, final String label) {
            this.id = id;
            this.code = code;
            this.label = label;
        }
     
        public String getId() {
            return id;
        }
     
        public String getCode() {
            return code;
        }
     
        public String getLabel() {
            return label;
        }
     
        /**
         * 根據id獲取枚舉對象
         * @param id 
         */
        public static PayTypeEnum findById(String id) {
            for (PayTypeEnum type : PayTypeEnum.values()) {
                if (type.getId().equals(id))
                    return type;
            }
            return null;
        }
     
        /**
         * 根據code獲取枚舉對象
         * @param code
         */
        public static PayTypeEnum findByCode(String code) {
            for (PayTypeEnum type : PayTypeEnum.values()) {
                if (type.getCode().equals(code))
                    return type;
            }
            return null;
        }
     
        /**
         * 檢查支付類型是否有效
         * @param id 
         */
        public static void check(String id) {
            if (StringUtils.isEmpty(id)) {
                throw new BadRequestAlertException("無效的支付類型", "PayTypeEnum", "無效的支付類型");
            }
            for (PayTypeEnum type : PayTypeEnum.values()) {
                if (type.getId().equals(id)) {
                    return;
                }
            }
            throw new BadRequestAlertException("無效的支付類型", "PayTypeEnum", "無效的支付類型");
        }
     
    }

    4、測試效果

    public static void main(String[] args) {
     
       System.out.println("============= 獲取枚舉類的值 =============");
       System.out.println("獲取id:" + PayTypeEnum.WEI_XIN_MINI_APP.getId());
       System.out.println("獲取code:" + PayTypeEnum.WEI_XIN_MINI_APP.getCode());
       System.out.println("獲取label:" + PayTypeEnum.WEI_XIN_MINI_APP.getLabel());
     
     
       System.out.println("============= 根據自定義的查詢方法獲取值 =============");
       System.out.println("根據id獲取枚舉對象:" + PayTypeEnum.findById("3"));
       System.out.println("根據code獲取枚舉對象:" + PayTypeEnum.findByCode("zfbma"));
     
     
       System.out.println("============= 類型有效性檢查 =============");
       System.out.print("檢查1:");
       PayTypeEnum.check("1");
       System.out.println();
       System.out.print("檢查2:");
       PayTypeEnum.check("999");
    }

    打印如下:

    ============= 獲取枚舉類的值 =============
    獲取id:1
    獲取code:wxma
    獲取label:微信小程序支付
    ============= 根據自定義的查詢方法獲取值 =============
    根據id獲取枚舉對象:ZFB_MINI_APP
    根據code獲取枚舉對象:ZFB_MINI_APP
    ============= 類型有效性檢查 =============
    檢查1:
    檢查2:無效的支付類型
     
    Process finished with exit code 0

    感謝各位的閱讀,以上就是“Java枚舉類在生產環境中怎么使用”的內容了,經過本文的學習后,相信大家對Java枚舉類在生產環境中怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    图木舒克市| 乌兰县| 新民市| 松桃| 平昌县| 民乐县| 清镇市| 亚东县| 延寿县| 福州市| 裕民县| 中阳县| 三门峡市| 海城市| 集安市| 苍溪县| 镇巴县| 科技| 藁城市| 子长县| 衡山县| 定日县| 宜君县| 蓝田县| 凭祥市| 阳江市| 德江县| 齐齐哈尔市| 麻栗坡县| 南澳县| 兴国县| 鄂伦春自治旗| 长沙县| 伊春市| 娱乐| 库车县| 上林县| 新乐市| 夏河县| 如东县| 花莲市|