由于Enum.valueOf匹配不到枚举时会出现异常,这个可以用try...catch来解决,但是这样会导致代码往臃肿的道路上越走越远。 本文与其说是解决Enum.valueOf找不到枚举出现的异常还不如说是换了解决方案: 现在有这么一个枚举 /** * 类型操作接口 */ public interface TypeEnum { Boolean ret(); // 表示是某个...
Java解决Enum.valueOf找不到枚举出现的异常
相应的,enum中的valueOf方法则是把字符串转化为枚举常量对象,例如:valueOf("SPRING")将返回一个SPRING对象 toString和valueOf是两个方向相反的方法 因此在重写toString方法的时候最好顺便把valueOf方法也相对应的重写了 valueOf方法 默认的valueOf方法的( )中必须输入跟罗列出来的枚举常量名一模一样的字符串才能转换,...
使用try-catch语句:在Enum类的方法中使用try-catch语句来捕获异常并进行相应的处理。例如: public enum ErrorCode { SUCCESS, INVALID_INPUT, DATABASE_ERROR; public static ErrorCode getErrorCode(String code) { try { return ErrorCode.valueOf(code); } catch (IllegalArgumentException e) { return Error...
深入学习java源码之Enum.valueOf()与Enum.ordinal() 枚举类的使用 枚举类型是强类型的,从而保证了系统安全性。枚举可以限定参数的个数,对调用者的行为能更加严格地进行控制。把一些运行期的参数检查放到了编译期。通俗的来讲就是枚举更加安全,提高了代码的可读性。
Enum.valueOf With Try Catch(劣) 这种拙劣的做法最常见于初学者。异常不应该用于控制流,并且这样可能会有一些性能影响。不要偷懒。你必须用正确的方式去做。 在GitHub上查看。(https://github.com/StubbornJava/StubbornJava/blob/master/stubbornjava-examples/src/main/java/com/stubbornjava/examples/common/Enum...
enum Fruit { APPLE, BANANA, ORANGE } String fruitName = 'APPLE'; Fruit fruit = Fruit.valueOf(Fruit.class, fruitName); System.out.println(fruit); //输出:APPLE 需要注意的是,如果给定的字符串名称不属于枚举类型中的任何一个常量,那么valueOf()方法会抛出IllegalArgumentException异常。因此,在使用该方...
但是在Enum的源码中只有一个valueOf()的方法: 其他两个方法都是JVM的内置方法... 问题清楚了,我们有两种方式可以解决处理此问题: (1)使用try...catch捕获异常 try{ Season s=Season.valueOf(name);//有该枚举项时的处理System.out.println(s); }...
说明:由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常 这里会出现这样一个限制的原因是Java对枚举的序列化和反序列化采用完全不同的策略。序列化的结果中仅包含枚举的名字,而不包含枚举的具体定义,反序列化的时候客户端从序列化结果中读取枚举的name,然后调用java.lang.Enum#valueOf根据本...
正如注释中提到的,必须处理IllegalArgumentExceptionbyvalueOf,因此,您可以定义自己的值查找方法,该方法...