为了测试支持,我有以下枚举。它是关于 I18n
的。
public enum PersonaFieldI18n {
NOTHING_TO_DO;
private PersonaFieldI18n(){
}
public enum English {
ID("Id"),
NOMBRE("Name"),
APELLIDO("Last Name"),
FECHA("Date");
private String field;
private English(String field){
this.field = field;
}
public String getField() {
return field;
}
}
public enum Spanish {
ID("Id"),
NOMBRE("Nombre"),
APELLIDO("Apellido"),
FECHA("Fecha");
private String field;
private Spanish(String field){
this.field = field;
}
public String getField() {
return field;
}
}
public enum Portuguese {
ID("Id"),
NOMBRE("Nome"),
APELLIDO("Sobrenome"),
FECHA("Data");
private String field;
private Portuguese(String field){
this.field = field;
}
public String getField() {
return field;
}
}
}
如果 PersonaFieldI18n.values()
被执行,它只会返回 NOTHING_TO_DO
。
获取每个嵌套枚举的集合或数组的方法是什么(如果存在)?
我需要一种方法来调用 PersonaFieldI18n
枚举中定义的方法,它返回以下元素:
PersonaFieldI18n.English
PersonaFieldI18n.Spanish
PersonaFieldI18n.Portuguese
如您所见,上面显示的每个元素都是 PersonaFieldI18n
枚举的嵌套枚举。
这样做可行吗?如何?什么是最佳实现?
最佳答案
正如@Kevin 所说,嵌套枚举实际上是 PersonaFieldI18n 的内部类,因此您可以通过反射 获取它们。
声明如下:
Class<?>[] classes = PersonaFieldI18n.class.getDeclaredClasses();
关于java - 如何获取在另一个枚举中声明的所有嵌套枚举的集合或数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42284465/