IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java 枚举 根据code或desc 获取枚举对象 -> 正文阅读

[Java知识库]java 枚举 根据code或desc 获取枚举对象

1,代码



public enum ResponseEnum {

    /**
     *  成功返回
     * */
    SUCCEED(0, "成功"),
    UNKNOWN(1001, "未知错误"),
  




    ;

    private static Map<String, ResponseEnum> messageMap;



    private final Integer code;

    private final String description;


    public static ResponseEnum messageOf(String message) {
        if (messageMap == null) {
            messageMap = Arrays.stream(ResponseEnum.values()).collect(Collectors.toMap(ResponseEnum::getDescription, e -> e));
        }
        return messageMap.getOrDefault(message, UNKNOWN);
    }

    ResponseEnum(Integer code, String description) {
        this.code = code;
        this.description = description;
    }

    public static ResponseEnum findByCode(Integer code){
       for (ResponseEnum responseEnum : values()){
         if(responseEnum.getCode().equals(code)){
            return responseEnum;
         }
       }
       return null;
    }

    public Integer getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }


//根据desc获取枚举对象
    public static <T extends ResponseEnum> T getEnumByDesc(Class<T> clazz, String desc) {
        for(T inner : clazz.getEnumConstants())
            if(inner.getDescription().equals(desc))
                return inner;
        return null;
    }

//根据code获取枚举对象
    public static <T extends ResponseEnum> T getEnumByCode(Class<T> clazz, Integer code) {
        for(T inner : clazz.getEnumConstants())
            if(inner.getCode().equals(code))
                return inner;
        return null;
    }

}

2,使用



		 //此处对后端抛出的异常做国际化处理
		 } catch (Exception e) {
                ImportTemplateDTO importDTO = cacheDto.get(dto.getRowIndex());
                //某个异常的枚举对象,如传入“成功”,则responseEnum为SUCCEED
                ResponseEnum responseEnum = ResponseEnum.getEnumByDesc(ResponseEnum.class,e.getLocalizedMessage());
                importDTO.setFailReason(messageConfig.storageStr(responseEnum.name()));
                ResponseEnum.getEnumByDesc(ResponseEnum.class,e.getLocalizedMessage());
                errorList.add(importDTO);
                iterator.remove();
                log.error(e.getLocalizedMessage());
            }

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:29:52  更:2022-04-07 22:33:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:41:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码