2011-11-21 175 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); 
}