Если ваши перечисленные типы хранят данные, которые предназначены для полиморфного доступа, то они должны реализовать соответствующий интерфейс. Допустим, эти данные представляют собой один int
, тогда перечисленные типы могут выглядеть следующим образом (используя IntSupplier ):
public enum MyEnum1 implements IntSupplier {
ConstantA(1),
ConstantB(2),
ConstantC(3);
private final int number;
private MyEnum1(int number) { this.number = number; }
public int getAsInt() { return number; }
}
Затем вы можете использовать этот интерфейс, чтобы получить списокперечислимые значения (константы), которые правильно введены:
IntSupplier[] myEnums = Class.forName("MyEnum1")
.asSubclass(IntSupplier.class)
.getEnumConstants();
И используйте это для получения значений:
for(IntSupplier value : myEnums) {
System.out.println(value.getAsInt());
}