My enum types-
public enum Foo {A, B, C}
And
public enum Bar {A("aaa"), B("bbb"), C("ccc")}
All I have at runtime is the enum class name i.e. "Foo"
I do this -
Class<?> c = Class.forName(getClassName()) // local function
Using Arrays.asList(c.getEnumConstants()) gets me -
Foo -
[A, B, C]
Bar -
[aaa, bbb, ccc]
I also want [A, B, C] when evaluating Bar.
.values() is what I want but how do I get to it dynamically without any explicit casting?
Many thanks for any replies.
Have found the solution -
List<? extends Enum<?>> enums = (List<? extends Enum<?>>) Arrays.asList(c.getEnumConstants());
for (Enum<?> e: enums) {
System.err.println("e.name: " + e.name());
}