2011-11-21 187 views
6

可能重复:
Java - Convert String to enum将字符串转换为枚举?

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

mymethod(AnotherClass.MyEnum.PassedEnum); 

我想窝这个接收一个String类中的哪成为MyEnum:

public static void method(String toPass){ 

mymethod(AnotherClass.toPass.PassedEnum); 

} 

传递的变量必须是一个字符串,但我需要将它转换为Enum传递给AnotherClass?

TIA

+0

感谢所有需要什么。 –

回答

8

使用AnotherClass.MyEnum.valueOf(toPass)

9

你的意思是像...

MyEnum e = MyEnum.valueOf(text); 

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

尝试在method身体这样做:

AnotherClass.toPass.PassedEnum.valueOf(toPass); 
2

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

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

如果字符串包含没有值作为枚举常量存在,此方法将引发IllegalArgumentException

2
public static void method(String toPass){ 

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

} 
2

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

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