通过枚举类型和名称匹配实例

枚举工具类

Class有一个getEnumConstants()方法,可以获得这类所有的枚举实例,通过下面的方法实现通过名称查询枚举实例(个人觉得比直接用Enum.valueOf方法好,不会抛异常)。

public static > T fromString(Class clazz, String name) {
   Enum[] enums = clazz.getEnumConstants();
   return Arrays.stream(enums).anyMatch(e -> Objects.equals(e.name(), name)) ?
           Enum.valueOf(clazz, name) : null;
}

over~~

你可能感兴趣的:(JAVA,java)