public class AnnotationUtils {
public static Object getMethodResult(String name,Object o) throws InvocationTargetException,
IllegalAccessException, NoSuchFieldException, NoSuchMethodException, InstantiationException {
//获取实体类的所有方法
Method[] methods = o.getClass().getMethods();
for(Method m:methods){
//获取方法上的注解
XX annotation = m.getAnnotation(XX.class);
//获取属性名为name的注解
String name1 = annotation.name();
if(name1.equals(name)){
//如果注解查找匹配。执行该注解下的方法,并得到结果,返回
Object invoke = m.invoke(o);
return invoke;
}
}
return null;
}
@Test
public void vvv() throws NoSuchMethodException, NoSuchFieldException, InstantiationException, IllegalAccessException, InvocationTargetException {
Object a = AnnotationUtils.getMethodResult("a",this);
System.out.println(a);
}
@XX(name = "a")
public String xxx(){
return "a";
}
@XX(name = "b")
public String v(){
return "b";
}
}
网友评论