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

  }