我有像这样的枚举:
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)帮助我解决这个问题。