私の列挙型-
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());
}