首页 > 代码库 > java对枚举的类反射使用
java对枚举的类反射使用
import java.lang.reflect.Method; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.lang3.reflect.MethodUtils; /** * * <strong>功能:</strong>枚举使用工具 * <strong>作者:</strong>Gary Huang * <strong>日期:</strong> 2014-3-5 * <strong>版权:<strong>版权所有(C) 2014,QQ 834865081 */ public class EumnUtil { public static String getText(Class<?> ref , Object code){ return parseEumn(ref).get( TransformUtils.toString(code) ) ; } public static <T> Map<String, String> parseEumn(Class<T> ref){ Map<String, String> map = new LinkedHashMap<String, String>() ; if(ref.isEnum()){ T[] ts = ref.getEnumConstants() ; for(T t : ts){ String text = getInvokeValue(t, "getText") ; Enum<?> tempEnum = (Enum<?>) t ; if(text == null){ text = tempEnum.name() ; } String code = getInvokeValue(t, "getCode") ; if(code == null){ code = TransformUtils.toString( tempEnum.ordinal() ) ; } map.put(code , text ) ; } } return map ; } static <T> String getInvokeValue(T t , String methodName){ try { Method method = MethodUtils.getAccessibleMethod( t.getClass() , methodName); String text = TransformUtils.toString(method.invoke( t )) ; return text ; } catch (Exception e) { return null ; } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。