两个方法都可以将一个未知的枚举中所有成量读取出来

如果系统中有好几个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());

}

 posted on 2011-08-21 12:30  ﹎敏ō  阅读(1431)  评论(0编辑  收藏  举报