英文:
Convert Class.getEnumConstants to String
问题
这个测试案例是为了验证通用枚举生成器。它会生成在一个 XML 文件中列出的枚举。
测试案例是循环遍历每个生成的枚举类,并验证枚举常量是否与从 XML 生成的对象相匹配。
1. 从枚举获取枚举常量列表:
Class<?> c = classLoader.loadClass("enum.java");
System.out.println(Arrays.asList(c.getEnumConstants()));
[x,y,z]
2. 从从 XML 生成的对象中列出枚举值:
List<String> str1 = ["x","y","z"];
现在我想要比较 1 和 2。怎么做?
我参考了 https://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html。
英文:
This test case is to validate the generic enum generator. This generates the enums listed in an xml file.
Test case is to looping through each Enum class generated and verify if the enum constants matches the object generated from 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"];
Now I wanted to compare 1 and 2. How to do?
I referenced https://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html
答案1
得分: 1
java.lang.Class.getEnumConstants() 方法返回此枚举类的元素,如果该 Class 对象不表示枚举类型,则返回 null。方法 .name() 将枚举常量的名称作为字符串返回。您可以使用它与字符串列表进行比较。
首先,将结果转换为类型为 String 的 ArrayList
ArrayList<String> list1AsString = new ArrayList<>();
for(EnumName enumInstance : list1){
list1AsString.add(enumInstance.name());
}
然后您可以进行比较。
list1AsString.equals(list2);
[枚举的方法][1]
[1]: https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html
英文:
java.lang.Class.getEnumConstants() returns the elements of this enum class or null if this Class object does not represent an enum type. The methode .name() returns the name of a enum constant as a String. You can use it to compare to the Sting List.
First you convert the result into an ArrayList of type String
ArrayList<String> list1AsString = new ArrayList<>();
for(EnumName enum:list1){
list1AsString.add(enum.name());
}
Then you can compare them.
list1AsString .equals(list2);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论