zoukankan      html  css  js  c++  java
  • 枚举类中枚举值不存在.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;
     }
  • 相关阅读:
    原生微信小程序砸金蛋奖程序代码分析
    git 如何恢复到指定版本--很常用的方法
    cupload.js手动插入数据
    asp.net Core3.1自定义权限体系-菜单和操作按钮权限
    linux 解决docker、docker-compose命令权限问题(sudo)
    Supervisor 安装和使用教程
    php 无限级分类查找父节点所有子节点【找出 某节点的子节点】
    bat echo 输出内容为不同的颜色
    git 提交团队项目代码的流程
    bat脚本 切换到其他盘符
  • 原文地址:https://www.cnblogs.com/dongl961230/p/14280780.html
Copyright © 2011-2022 走看看