两个方法都可以将一个未知的枚举中所有成量读取出来
如果系统中有好几个ORM实体使用枚举作为成员变量,在页面中又需要将这些枚举表现为select标签,就可以使用这个方法了。
public <E extends Enum<E>> Map<Integer, String> getMap(Class<E> enumType){
Map<Integer, String> map = new HashMap<Integer, String>();
//方法1
EnumSet<E> set = EnumSet.allOf(enumType);
for(Enum<E> e : set){
map.put(e.ordinal(), e.toString());
}//方法2
E[] enums = enumType.getEnumConstants();
for(Enum<E> e : enums){
map.put(e.ordinal(), e.toString());
}
return map;
}
还有一种不太雅观的方法:
Field[] fields = enumType.getDeclaredFields();
for(int i = 0;i<fields.length;i++){
map.put(i, fields[i].getName());
}