Скажите, что у нас есть a Class
объект. Назовите его cls
.
Теперь cls.isEnum()
возвраты true
Какая радость!!! Мне можно было перечислить значения мне? (один сахар, никакое молоко)
getEnumConstants () метод объекта Class возвращает массив объектов
public static enum E {
A, B, C, D;
}
public static void main(String[] args) {
Class c = E.class;
for(Object b:c.getEnumConstants())
{
System.out.println(b);
}
}
Печать:
A
B
C
D
Вы можете использовать EnumSet.allOf (Class
, где
Given:
public static enum Alphabet {
A, B, C, D;
}
Вы можете написать:
for (Enum<?> e : EnumSet.allOf(Alphabet.class)) {
System.out.println(e);
}
// A, B, C, D
Следующий main:
открытый класс GetEnumFields {
public static enum Enum {
A, B, C, D;
}
public static void main(String[] args) {
Enum a = Enum.A;
Field[] declaredFields = a.getClass().getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
System.out.println(declaredFields[i]);
}
}
}
выводит:
public static final GetEnumFields$Enum GetEnumFields$Enum.A
public static final GetEnumFields$Enum GetEnumFields$Enum.B
public static final GetEnumFields$Enum GetEnumFields$Enum.C
public static final GetEnumFields$Enum GetEnumFields$Enum.D
private static final GetEnumFields$Enum[] GetEnumFields$Enum.ENUM$VALUES