由于Enum.valueOf匹配不到枚举时会出现异常,这个可以用try...catch来解决,但是这样会导致代码往臃肿的道路上越走越远。 本文与其说是解决Enum.valueOf找不到枚举出现的异常还不如说是换了解决方案: 现在有这么一个枚举 /** * 类型操作接口 */ public interface TypeEnum { Boolean ret(); // 表示是某个...
enum继承于Enum,故用enum定义的枚举类型可以使用Enum类中的一切方法,API文档如下 toString方法和valueOf方法 enum类本身默认重写了toString方法,例如:Season.SPRING.toString()返回的是字符串"SPRING"; 相应的,enum中的valueOf方法则是把字符串转化为枚举常量对象,例如:valueOf("SPRING")将返回一个SPRING对象 toString和...
publicenumMyEnum{CONSTANT1,CONSTANT2,CONSTANT3} 1. 2. 3. 4. 5. 检查常量是否存在 在确认了枚举的定义后,我们需要检查常量是否存在。如果在代码中直接使用了一个不存在的常量,就会抛出java.lang.IllegalArgumentException: No enum constant异常。 为了避免这个异常,我们可以使用枚举的valueOf()方法来检查常量是...
3. 提供解决java.lang.IllegalArgumentException: No enum constant错误的常见方法 检查常量名称:确保你引用的枚举常量名称与枚举类型中定义的名称完全匹配,包括大小写。 添加错误处理:在尝试获取枚举常量之前,检查提供的字符串是否有效。 使用Enum.valueOf方法的异常处理:...
"No enum constant " + enumType.getCanonicalName() + "." + name); } 猜测、分析 猜测可能是编译的时候,这个类被JDK默认继承了Enum类,通过IDEA查看class反编译文件: what???什么也没有。。。 使用javap来看这个class文件: 首先,确实可以看到这个类继承自Enum类,然后这个类valueOf(String)调用了Enum.value...
get(name); if (result != null) return result; if (name == null) throw new NullPointerException("Name is null"); throw new IllegalArgumentException( "No enum constant " + enumType.getCanonicalName() + "." + name); } /** * 枚举类不能有finalize方法。 */ protected final void ...
Java解决Enum.valueOf找不到枚举出现的异常
Java中的enum主要用于定义一组常量,使代码更加清晰、易于理解和维护。具体来说,enum在Java中的作用包括但不限于以下几点:定义常量:规范参数形式:枚举规范了参数的形式,避免了使用int型参数可能带来的模糊概念,使代码更加清晰。类型安全:使用枚举可以确保传递给方法的参数只能是预定义的常量之一,从而...
可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 4.使用构造函数 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 public enum Color { ...
Enum里面valueof的用法 java java enum valueof Java 枚举(enum) Java 枚举是一个特殊的类,一般表示一组常量,枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 内部类中也可以使用枚举 每个枚举都是通过 Class 在内部实现的,且所有的枚举值都是 public static final 的。