Преобразовать Class.getEnumConstants в строку - PullRequest
0 голосов
/ 08 апреля 2020

Этот тестовый пример предназначен для проверки генератора перечислений c. Это генерирует перечисления, перечисленные в файле xml.

Тестовый цикл состоит в циклическом прохождении каждого сгенерированного класса Enum и проверке, соответствуют ли константы enum объекту, сгенерированному из XML.

1. List of Enum constants from Enum:
Class<?> c = classLoader.loadClass("enum.java");
System.out.println(Arrays.asList(.getEnumConstants()));
[x,y,z]

2. List the Enum values from the Object generated from XML:
List<String> str1 = ["x","y","z"];

Теперь я хотел сравнить 1 и 2. Как это сделать?

Я ссылался https://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html

1 Ответ

1 голос
/ 08 апреля 2020

java .lang.Class.getEnumConstants () возвращает элементы этого перечислимого класса или null, если этот объект Class не представляет тип перечисления. Метод .name () возвращает имя константы перечисления в виде строки. Вы можете использовать его для сравнения со Sting List.

Сначала вы конвертируете результат в ArrayList типа String

ArrayList<String> list1AsString = new ArrayList<>();
for(EnumName enum:list1){
 list1AsString.add(enum.name()); 
}

Затем вы можете сравнить их.

list1AsString .equals(list2);

Метод Enum

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...