枚舉類中枚舉值不存在.valueOf(enum) 拋異常處理


開發過程中,經常使用枚舉類操作一些分支情況,但是當入參在枚舉類中找不到時,就會拋異常,沒辦法進行 if(lbAppHomeOperator == null) 操作,這時我們可以使用   Enums.getIfPresent(XXXEnum.class, strEnum).orNull();  進行處理。

*****業務代碼:

1、枚舉類

/**
 * @author D-L
 * @program: ella-server
 * @description: 聽書首頁發布操作
 * @date 2021-01-12 11:24:18
 */
@Slf4j
public enum PublishLbAppHomeOperator {


    APPCN {
        @Override
        public void apply(LbListenMapper lbListenMapper) {
            lbListenMapper.publishLbHomePageAppCn();
            log.info("國內app聽書首頁發布成功");
        }
    },

    APPOTHER {
        @Override
        public void apply(LbListenMapper lbListenMapper) {
            lbListenMapper.publishLbHomePageAppOther();
            log.info("其他地區app聽書首頁發布成功");
        }
    },

    HDCN {
        @Override
        public void apply(LbListenMapper lbListenMapper) {
            lbListenMapper.publishLbHomePageHdCn();
            log.info("國內HD聽書首頁發布成功");
        }
    },

    HDOTHER {
        @Override
        public void apply(LbListenMapper lbListenMapper) {
            lbListenMapper.publishLbHomePageHdOther();
            log.info("其他地區HD聽書首頁發布成功");
        }
    },

    GUSHIJI {
        @Override
        public void apply(LbListenMapper lbListenMapper) {
            lbListenMapper.publishLbHomePageGushiji();
            log.info("故事機聽書首頁發布成功");
        }
    };

    public abstract void apply(LbListenMapper lbListenMapper);
}

 

2、提供一個 getIfPresent 判斷方法

 /**
     * 判斷枚舉類中 是否存在傳入的枚舉值
     * @param operatorEnum
     * @return
     */
    private PublishLbAppHomeOperator getIfPresent(String operatorEnum) {
        return Enums.getIfPresent(PublishLbAppHomeOperator.class, operatorEnum).orNull();
    }

3、具體調用

 if(getIfPresent(operatorEnum) == null){
       log.info("platformCode , siteCode --- check param error :{} , {}", platformCode , siteCode);
       response.setCodeAndMessage(PARAM_ERROR_CODE, PARAM_ERROR_DESC);
       return;
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM