说我有这个枚举类型:
public enum Type { VALUEA, VALUEB };
并希望使用valueOf()从字符串切换到此枚举。 如何处理这种情况,使其返回默认值?
Type.valueOf("NOTVALID");
答案 0 :(得分:1)
public Type getMyEnum(String value){
Type expectedType;
try {
expectedType = Type.valueOf(value);
} catch(IllegalArgumentException ex){
expectedType = Type.YOUR_DEFUALT_ONE;
}
return expectedType;
}
答案 1 :(得分:0)
当为String检索枚举值时,您使用了name()方法。
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;
}
}