我的枚举类型-
public enum Foo {A, B, C}
和
public enum Bar {A("aaa"), B("bbb"), C("ccc")}
我在运行时所拥有的只是枚举类名,即“Foo”
我这样做 -
Class<?> c = Class.forName(getClassName()) // local function
使用Arrays.asList(c.getEnumConstants())
让我 -
富 -
[A, B, C]
酒吧 -
[aaa, bbb, ccc]
我也想[A, B, C]
在评估时Bar
。
.values()
是我想要的,但我如何在没有任何显式转换的情况下动态获得它?
非常感谢您的回复。
找到了解决办法——
List<? extends Enum<?>> enums = (List<? extends Enum<?>>) Arrays.asList(c.getEnumConstants());
for (Enum<?> e: enums) {
System.err.println("e.name: " + e.name());
}