关于Java:将字符串转换为枚举?

Convert String to Enum?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Java - Convert String to enum

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

1
mymethod(AnotherClass.MyEnum.PassedEnum);

我想把它嵌套在一个类中,这个类接收一个变成myenum的字符串:

1
2
3
4
5
public static void method(String toPass){

 mymethod(AnotherClass.toPass.PassedEnum);

}

传递的变量必须是字符串,但我需要将其转换为枚举以传递给其他类?

蒂亚


使用AnotherClass.MyEnum.valueOf(toPass)


你是说…

1
MyEnum e = MyEnum.valueOf(text);

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


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

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

1
2
3
4
5
public static void method(String toPass){

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

}

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

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

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


method的身体里试着这样做:

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


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