由于Enum.valueOf匹配不到枚举时会出现异常,这个可以用try...catch来解决,但是这样会导致代码往臃肿的道路上越走越远。 本文与其说是解决Enum.valueOf找不到枚举出现的异常还不如说是换了解决方案: 现在有这么一个枚举 /** * 类型操作接口 */ public interface TypeEnum { Boolean ret(); // 表示是某个...
在调用valueOf方法之前,我们可以使用if语句检查输入是否为null。如果输入为null,我们可以选择直接返回null或抛出自定义的异常,而不是调用valueOf方法。 StringenumName="INVALID_NAME";if(enumName==null){// 处理输入为null的情况}else{try{MyEnumenumValue=MyEnum.valueOf(enumName);// 处理枚举实例}catch(NullP...
Java解决Enum.valueOf找不到枚举出现的异常
相应的,enum中的valueOf方法则是把字符串转化为枚举常量对象,例如:valueOf("SPRING")将返回一个SPRING对象 toString和valueOf是两个方向相反的方法 因此在重写toString方法的时候最好顺便把valueOf方法也相对应的重写了 valueOf方法 默认的valueOf方法的( )中必须输入跟罗列出来的枚举常量名一模一样的字符串才能转换,...
Enum.valueOf With Try Catch(劣) 这种拙劣的做法最常见于初学者。异常不应该用于控制流,并且这样可能会有一些性能影响。不要偷懒。你必须用正确的方式去做。 在GitHub上查看。(https://github.com/StubbornJava/StubbornJava/blob/master/stubbornjava-examples/src/main/java/com/stubbornjava/examples/common/Enum...
说明:由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常 这里会出现这样一个限制的原因是Java对枚举的序列化和反序列化采用完全不同的策略。序列化的结果中仅包含枚举的名字,而不包含枚举的具体定义,反序列化的时候客户端从序列化结果中读取枚举的name,然后调用java.lang.Enum#valueOf根据本...
enum Fruit { APPLE, BANANA, ORANGE } String fruitName = 'APPLE'; Fruit fruit = Fruit.valueOf(Fruit.class, fruitName); System.out.println(fruit); //输出:APPLE 需要注意的是,如果给定的字符串名称不属于枚举类型中的任何一个常量,那么valueOf()方法会抛出IllegalArgumentException异常。因此,在使用该方...
I'm trying to derive an enum value from a String, like: Level level = Enum.valueOf(Level.class, "WARNING"); But all I get is compiler warnings like: Test.java:8: <T>valueOf(java.lang.Class<T>,java.lang.String) in java.lang.Enum cannot be applied to (java.lang.Class<java.uti...
Java中的Enum的使用与分析 使用name()方法和valueOf(String)方法可以在枚举类型对象和字符串之间方便得转换。如果valueOf(String)方法的参数不是该枚举类型合法的字符串,则会抛出IllegalArgumentException异常。Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比如本例中SPRING, SUMMER, AUTUMN, WINTER的序数就...
使用Enum.valueOf()方法检查枚举值是否存在:在switch语句之前可以通过Enum.valueOf()方法检查输入的枚举值是否存在于枚举类型中,如果不存在则抛出异常或者进行相应的处理。 try { EnumType enumValue = EnumType.valueOf(input); switch(enumValue) { // cases } } catch (IllegalArgumentException e) { System....