如何在string->枚举转换中处理非法参数异常?

时间:2014-06-09 09:46:43

标签: java

说我有这个枚举类型:

public enum Type { VALUEA, VALUEB };

并希望使用valueOf()从字符串切换到此枚举。 如何处理这种情况,使其返回默认值?

Type.valueOf("NOTVALID");

2 个答案:

答案 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;
    }

  }