对于测试支持,我有以下枚举。大概是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
枚举的嵌套枚举。
这样做可能吗?怎么样?什么是最佳实施?
答案 0 :(得分:2)
as @Kevin说嵌套枚举实际上是PersonaFieldI18n的内部类,所以你可以通过 reflection 来获取它们。
声明如下:
Class<?>[] classes = PersonaFieldI18n.class.getDeclaredClasses();