我有一个使用枚举的方法:
mymethod(AnotherClass.MyEnum.PassedEnum);
我希望将其嵌套在一个接收String的类中,该类变为MyEnum:
public static void method(String toPass){
mymethod(AnotherClass.toPass.PassedEnum);
}
传递的变量必须是String但是我需要将它转换为枚举以传递给AnotherClass?
TIA
答案 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);
}