首页 > 编程语言 > 详细

枚举类中枚举值不存在.valueOf(enum) 抛异常处理

时间:2021-01-15 13:19:47      阅读:296      评论:0      收藏:0      [点我收藏+]

开发过程中,经常使用枚举类操作一些分支情况,但是当入参在枚举类中找不到时,就会抛异常,没办法进行 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;
 }

 

枚举类中枚举值不存在.valueOf(enum) 抛异常处理

原文:https://www.cnblogs.com/dongl961230/p/14280780.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!