枚举类工具
1.why在项目书写过程中对枚举类的应用比较多比如我们的字典表在项目中的映射业务异常的定义等等。但是由于在团队中每个人负责的模块不同在模块中对自己书写的枚举项的获取也不尽相同。如果身为一个项目管理者想要在项目中制定诸如此类的统一的规范那规范的条款之多可能会让程序员们望而却步了。这时候一个有效的规范类就很有必要了2.how首先给所有枚举类定义一个接口类package com.elean.utils; /** * auther Elean * date 19/6/2024 下午8:41 * description 枚举类root */ public interface BaseEnum { Integer getCode(); String getName(); }我们还提供一个工具类作为枚举类code-name的转换用package com.elean.utils; import java.util.Arrays; /** * auther Elean * date 19/6/2024 下午8:42 * description */ public class EnumUtil { public static T extends BaseEnum T getEnum(ClassT t, String name) { return Arrays.stream(t.getEnumConstants()) .filter(e - e.getName().equals(name)) .findFirst() .orElse(null); } }3.where如果我们在项目中需要定义自己的业务异常只需要实现package com.elean.utils; /** * auther Elean * date 19/6/2024 下午8:43 * description */ public enum ExceptionEnum implements BaseEnum{ FIRE(119, 火警异常, 邻居家失火了快来救火), TRANS(123, 交警异常, 邻居家儿子喝酒开跑车装猪上了我报警) ; private Integer code; private String name; private String des; public static final MapString, ExceptionEnum ex; static { ex Arrays.Stream(values()) .collect(Collectors.toMap(ExceptionEnum::name, e - e); } ExceptionEnum(Integer code, String name, String des) { this.code code; this.name name; this.des des; } Override public Integer getCode() { return code; } Override public String getName() { return name; } public String getDes() { return des; } }public static void main(String[] args) { ExceptionEnum apply EnumUtil.getEnum(ExceptionEnum.class, 交警异常); System.out.println(apply.getDes()); }