我有像这样的枚举:

public enum Enum2
{
    ONE,TWO,THREE;
}

我可以列出所有值,例如:
public static void main(String... args)
{
   for (Enum2 e : Enum2.values())
   {
        System.out.println(e);
   }

}

如果我只有Enum的字符串名称,是否可以列出值?
String enum_name="Enum2";

例如。如果按照某种逻辑:
if (a>b)
{
enum_name="EnumA";
}
else
{
enum_name="EnumB";
}

在收到枚举的字符串名称后,我可以列出所有值。

最佳答案

Class<?> enumClazz = Class.forName("com.mycompany.Enum2");
for (Enum<?> e : ((Class<? extends Enum<?>>)enumClazz).getEnumConstants()) {
    System.out.println(e.name()); // The variable "e" would be Enum2.ONE, etc
}

谢谢@哈里(Harry)帮助我解决这个问题。

10-04 18:24