由于Enum.valueOf匹配不到枚举时会出现异常,这个可以用try...catch来解决,但是这样会导致代码往臃肿的道路上越走越远。 本文与其说是解决Enum.valueOf找不到枚举出现的异常还不如说是换了解决方案: 现在有这么一个枚举 /** * 类型操作接口 */ public interface TypeEnum { Boolean ret(); // 表示是某个...
publicenumColor{RED,BLUE,GREEN}publicclassEnumExample{publicstaticvoidmain(String[]args){// 使用valueOf()方法判断Enum值是否存在try{Colorcolor=Color.valueOf("RED");System.out.println("Enum值存在:"+color);}catch(IllegalArgumentExceptione){System.out.println("Enum值不存在");}// 使用values()方法...
首先,我们使用Enum.valueOf(enumClass, constantName)方法尝试获取指定名称的枚举常量,如果获取成功,说明该枚举常量存在;如果抛出IllegalArgumentException异常,说明该枚举常量不存在。 在main()方法中,我们分别判断了MONDAY和UNKNOWN这两个枚举常量是否存在,并输出了判断结果。 5. 结论 通过上述步骤,我们就可以判断 Java ...
变量 b 转换成字符串 String.valueOf(char c) : 将 char 变量 c 转换成字符串 String.valueOf...
或者,您可以设置一个默认值,调用 valueOf<MyEnum>("value", MyEnum.FALLBACK) 并避免空响应。您可以扩展您的特定枚举以使其默认为自动 inline fun <reified T : Enum<T>> valueOf(type: String, default: T): T { return try { java.lang.Enum.valueOf(T::class.java, type) } catch (e: Illegal...
可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 4.使用构造函数 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 public enum Color { ...
values()方法是由编译器插入到枚举类中的static方法,而它的父类Enum中并不存在这个方法。 valueOf(String name)方法与Enum类中的valueOf方法的作用类似根据名称获取枚举变量,同样是由编译器生成的,但更简洁些,只需传递一个参数。 代码语言:javascript 代码运行次数:0 ...
enum Fruit { APPLE, BANANA, ORANGE } String fruitName = 'APPLE'; Fruit fruit = Fruit.valueOf(Fruit.class, fruitName); System.out.println(fruit); //输出:APPLE 需要注意的是,如果给定的字符串名称不属于枚举类型中的任何一个常量,那么valueOf()方法会抛出IllegalArgumentException异常。因此,在使用该方...
减少循环次数,最简单的办法是,把第二层循环的集合变成 map,这样可以直接通过 key,获取想要的 value 数据。 虽说map 的 key 存在 hash 冲突的情况,但遍历存放数据的链表或者红黑树的时间复杂度,比遍历整个 list 集合要小很多。 4 用完资源记得及时关闭