类和方法注解的解析

来源:互联网 发布:乐视tv for mac 编辑:程序博客网 时间:2024/05/15 23:44
package annotation;import java.lang.annotation.Annotation;import java.lang.reflect.Method;@MyAnnou(num = 22)public class A {    @MyAnnou(num = 21)    public void aa() {    }    @MyAnnou(num = 23)    public void bb() {    }    @SuppressWarnings({ "unchecked", "rawtypes" })    @MyAnnou(num = 24)    public static void main(String[] args) {        try {            Class c=Class.forName("annotation.A");//动态加载类            /**             * 获取类上面的注解信息-方法1             * 判断加载的类上面是否有指定的注释信息             */            boolean b=c.isAnnotationPresent(MyAnnou.class);            if(b){//如果有注释信息,获取                MyAnnou ma=(MyAnnou) c.getAnnotation(MyAnnou.class);                System.out.println("**************类的注解信息*************");                System.out.println(ma.name());                System.out.println(ma.num());                System.out.println("*******************************");            }            /**             * 获取方法上边的注释信息             */            //获取该类下所有的方法并遍历出来            Method[] m=c.getMethods();            for (Method method : m) {                //判断该方法上面是否存在指定注解                boolean is=method.isAnnotationPresent(MyAnnou.class);                if(!is){//不存在就跳过此方法                    continue;                }                //获取该方法上的注解信息                MyAnnou mo=method.getAnnotation(MyAnnou.class);                System.out.println(method.getName()+"注解信息:");                System.out.println(mo.name());                System.out.println(mo.num());                System.out.println("*******************************");            }            /**             * 获取方法上的注解信息-方法2             */            Method[] mh=c.getMethods();            for (Method method : mh) {                Annotation[] anno=method.getAnnotations();//获取该方法下的所有注解的集合                for (Annotation ann : anno) {                    if(ann instanceof MyAnnou){                        MyAnnou mu=(MyAnnou) ann;                        System.out.println(method.getName()+"方法注解的解析2:");                        System.out.println(mu.name());                        System.out.println(mu.num());                        System.out.println("================================");                    }                }            }        } catch (Exception e) {        }    }}
1 0
原创粉丝点击