将字符串转换为枚举?

时间:2011-11-21 14:30:28

标签: java

  

可能重复:
  Java - Convert String to enum

我有一个使用枚举的方法:

mymethod(AnotherClass.MyEnum.PassedEnum);

我希望将其嵌套在一个接收String的类中,该类变为MyEnum:

public static void method(String toPass){

 mymethod(AnotherClass.toPass.PassedEnum);

}

传递的变量必须是String但是我需要将它转换为枚举以传递给AnotherClass?

TIA

7 个答案:

答案 0 :(得分:10)

使用AnotherClass.MyEnum.valueOf(toPass)

答案 1 :(得分:9)

你的意思是......

MyEnum e = MyEnum.valueOf(text);

MyEnum e = Enum.valueOf(MyEnum.class, text);

答案 2 :(得分:2)

我认为静态工厂方法Enum.valueOf()可以满足您的需求。

答案 3 :(得分:2)

尝试在method

的正文中执行此操作
AnotherClass.toPass.PassedEnum.valueOf(toPass);

答案 4 :(得分:2)

您可以使用Enum.valueOf(Class<...>, String)将字符串转换为相应的枚举实例:

MyEnum value = Enum.valueOf(MyEnum.class, "ENUM_VALUE");

如果字符串包含一个不存在作为枚举常量的值,则此方法将抛出IllegalArgumentException

答案 5 :(得分:2)

public static void method(String toPass){

 mymethod(AnotherClass.MyEnum.valueOf(toPass));

}

答案 6 :(得分:2)

您可以使用静态方法Enum.valueOf将字符串转换为枚举值:

public static void method(String toPass)
{
    AnotherClass.MyEnum eval = Enum.valueOf(AnotherClass.MyEnum.class,toPass);
    mymethod(eval);
}