将字符串转换为枚举? [复制]

Posted

技术标签:

【中文标题】将字符串转换为枚举? [复制]【英文标题】:Convert String to Enum? [duplicate] 【发布时间】:2012-01-03 01:06:34 【问题描述】:

可能重复:Java - Convert String to enum

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

mymethod(AnotherClass.MyEnum.PassedEnum);

我想将它嵌套在一个接收字符串的类中,该字符串变成 MyEnum:

public static void method(String toPass)

 mymethod(AnotherClass.toPass.PassedEnum);


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

TIA

【问题讨论】:

感谢大家所需要的。 【参考方案1】:

你的意思是...

MyEnum e = MyEnum.valueOf(text);

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

尝试在 method 的正文中执行此操作:

AnotherClass.toPass.PassedEnum.valueOf(toPass);

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:
public static void method(String toPass)

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


【讨论】:

【参考方案6】:

使用AnotherClass.MyEnum.valueOf(toPass)

【讨论】:

【参考方案7】:

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

public static void method(String toPass)

    AnotherClass.MyEnum eval = Enum.valueOf(AnotherClass.MyEnum.class,toPass);
    mymethod(eval);

【讨论】:

以上是关于将字符串转换为枚举? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Django/Python:如何将整数转换为等效的枚举字符串? [复制]

Django/Python:如何将整数转换为等效的枚举字符串? [复制]

JOOQ 使用转换器将字符串转换为枚举

使用泛型和简单地将字符串值转换为枚举时将字符串值转换为枚举时的混淆

JOOQ 使用内联转换器将字符串转换为枚举

Java将字符串转换为枚举列表[重复]