随着项目的功能越来越多.里面使用到的枚举对象也随之增加,以往是每个枚举都有一个获取的方法,后来网上查了一下.可以通过java的反射机制来获取代码如下
Class<?> onwClass = Class.forName("com.cheshangma.operation.common.enums." + typeName);//这里的typeName就是枚举对象的名称,是需要写全路径的,注意小数点别少写了
//这里是获得枚举的遍历方法 即:枚举对象.values();一样
Method method = onwClass.getMethod("values");
//这里获取所有的枚举对象 method.invoke(null)也可写成method.invoke(null,null)
EnumTypeInterface inter[] = (EnumTypeInterface[]) method.invoke(null);
for (EnumTypeInterface enumMessage : inter) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("value", enumMessage.getValue());
map.put("desc", enumMessage.getDesc());
map.put("name", enumMessage.toString());
list.add(map);
}