现象:
通过反射使用code获取枚举的name
方法:
1、建立一个枚举
2、提供方法通过反射得到类的方法调用判断
3、调用参数 传入枚举类 和需要查询的code
/**
* 通过枚举的code 得到枚举的name
* class 枚举
* code:传入code值 通过code 得到枚举的name
*/
public static void getEnumValue(Class clazz,Object code){
//返回枚举类的元素,或null如果此Class对象不表示枚举类型。
Object[] enumConstants = clazz.getEnumConstants();
try {
for (Object object : enumConstants) {
System.out.println(object);
//获得对象所声明的公开方法 参数标识方法名称
Method codeMethod = clazz.getMethod("getCode");
Method nameMethod = clazz.getMethod("getName");
System.out.println(codeMethod);
//执行对象的目标方法
Object invoke = codeMethod.invoke(object);
System.out.println(invoke);
if(code.equals(codeMethod.invoke(object))){
System.out.println("找到了:"+nameMethod.invoke(object));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}