Java 如何处理字符串上的非法参数异常->;枚举转换?
假设我有此枚举类型:Java 如何处理字符串上的非法参数异常->;枚举转换?,java,Java,假设我有此枚举类型: public enum Type { VALUEA, VALUEB }; 并希望使用valueOf()从字符串切换到此枚举。 如何处理这种情况,使其返回默认值 Type.valueOf("NOTVALID"); 在检索字符串的枚举值时,请使用name()方法 要从字符串切换到此枚举,请详细说明您想要什么?我希望valueOf()在传递的字符串对象没有相应的枚举类型时返回默认值,但您永远不应该使用捕获例外来控制程序流!这是一个例外,应该这样使用!看看这个: public
public enum Type { VALUEA, VALUEB };
并希望使用valueOf()从字符串切换到此枚举。
如何处理这种情况,使其返回默认值
Type.valueOf("NOTVALID");
在检索字符串的枚举值时,请使用name()方法
要从字符串切换到此枚举
,请详细说明您想要什么?我希望valueOf()在传递的字符串对象没有相应的枚举类型时返回默认值,但您永远不应该使用捕获例外来控制程序流!这是一个例外,应该这样使用!看看这个:
public Type getMyEnum(String value){
Type expectedType;
try {
expectedType = Type.valueOf(value);
} catch(IllegalArgumentException ex){
expectedType = Type.YOUR_DEFUALT_ONE;
}
return expectedType;
}
enum Type {
VALUEA,
VALUEB;
public static Type valueOfOrDefault(String value) {
for(Type type : getClass().getEnumConstants()) {
if(type.name().equalsIgnoreCase(value)) {
return type;
}
}
return Type.VALUEA;
}
}