Ответ 1
Вы можете сделать (pre-Java 8):
List<Enum> enumValues = Arrays.asList(Enum.values());
или
List<Enum> enumValues = new ArrayList<Enum>(EnumSet.allOf(Enum.class));
Используя функции Java8, вы можете сопоставить каждую константу с именем:
List<String> enumNames = Stream.of(Enum.values())
.map(Enum::name)
.collect(Collectors.toList());