2011-11-21 47 views
6

thể trùng lặp:
Java - Convert String to enumChuyển đổi chuỗi thành Enum?

Tôi có một phương pháp mà sử dụng một enum:

mymethod(AnotherClass.MyEnum.PassedEnum); 

Và tôi muốn tổ này trong một lớp học mà nhận được một chuỗi mà trở thành MyEnum:

public static void method(String toPass){ 

mymethod(AnotherClass.toPass.PassedEnum); 

} 

Biến đã qua phải là một chuỗi nhưng tôi cần chuyển đổi nó thành một Enum để chuyển sang lớp khác?

TIA

+0

Nhờ tất cả chỉ là những gì là cần thiết. –

Trả lời

8

Sử dụng AnotherClass.MyEnum.valueOf(toPass)

9

Bạn có nghĩa là giống như ...

MyEnum e = MyEnum.valueOf(text); 

hoặc

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

Tôi nghĩ rằng phương pháp nhà máy tĩnh Enum.valueOf() làm những gì bạn muốn.

2

Hãy thử làm điều này trong cơ thể của method:

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

Bạn có thể sử dụng Enum.valueOf(Class<...>, String) để chuyển đổi một chuỗi các dụ enum tương ứng:

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

Nếu chuỗi chứa một giá trị mà không làm tồn tại dưới dạng hằng số enum, phương thức này ném IllegalArgumentException.

2
public static void method(String toPass){ 

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

} 
2

Bạn có thể sử dụng phương pháp tĩnh Enum.valueOf để chuyển đổi một chuỗi đến một giá trị Enum:

public static void method(String toPass) 
{ 
    AnotherClass.MyEnum eval = Enum.valueOf(AnotherClass.MyEnum.class,toPass); 
    mymethod(eval); 
} 
Các vấn đề liên quan