由于Enum.valueOf匹配不到枚举时会出现异常,这个可以用try...catch来解决,但是这样会导致代码往臃肿的道路上越走越远。 本文与其说是解决Enum.valueOf找不到枚举出现的异常还不如说是换了解决方案: 现在有这么一个枚举 /** * 类型操作接口 */ public interface TypeEnum { Boolean ret(); // 表示是某个...
toString和valueOf是两个方向相反的方法 因此在重写toString方法的时候最好顺便把valueOf方法也相对应的重写了 valueOf方法 默认的valueOf方法的( )中必须输入跟罗列出来的枚举常量名一模一样的字符串才能转换,否则报错IllegalArgumentException 例1:默认的valueOf方法,括号内“春天”跟原enum Season中定义的常量名一样 ...
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...
classT, the implicitly declaredpublic static T valueOf(String)method on that enum may be used instead of this method to map from a name to the corresponding enum constant. All the constants of an enum class can be obtained by calling the implicitpublic static T[] values()method of that ...
SeasonEnum.valueOf(SeasonEnum,SPRING);//SeasonEnum为定义的枚举类,SPRING为其中实例 1. 报错,然后瞎试了试其他的变换,依旧报错,所以就上网查一查。看到如下代码x Mobile ret; ret = Mobile.valueOf("Samsung"); 1. 2. 我当时看到心里有些固执:我定义的枚举类实例是SPRING,不是一个字符串"SPRING"!所以觉...
这个传进来的枚举类型是TaskStatusEnum$2.class,它应该是TaskStatusEnum.class;一开始我以为是spring mvc在做请求参数解析的时候做了一层包装,我尝试把代码改成这样: task.setStatus(TaskStatusEnum.valueOf(taskStatusEnum.name())); 复制代码 结果发现我的猜测是错误的,类型依旧是TaskStatusEnum$2.class;只有当枚...
而JSON在反序列化的过程中,对于一个枚举类型,会尝试调用对应的枚举类的valueOf方法来获取到对应的枚举。 而我们查看枚举类的valueOf方法的实现时,就可以发现,如果从枚举类中找不到对应的枚举项的时候,就会抛出IllegalArgumentException: publicstatic<T extends Enum<T>>TvalueOf(Class<T> enumType, String name)...
values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中: values() 返回枚举类中所有的值。 ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。 valueOf()方法返回指定字符串值的枚举常量。 实例 enumColor { RED, GREEN, BLUE; ...
enum Fruit { APPLE, BANANA, ORANGE } String fruitName = 'APPLE'; Fruit fruit = Fruit.valueOf(Fruit.class, fruitName); System.out.println(fruit); //输出:APPLE 需要注意的是,如果给定的字符串名称不属于枚举类型中的任何一个常量,那么valueOf()方法会抛出IllegalArgumentException异常。因此,在使用该方...