首页 > 其他 > 详细

解析使用注解

时间:2019-12-11 16:00:04      阅读:77      评论:0      收藏:0      [点我收藏+]

:解析注解、获取注解的内容、调用指定的方法

package DemoTest;

import java.lang.reflect.Method;
            //DemoTest.Demo2 包名.类名
@pro(className="DemoTest.Demo2",methodName="show")
public class Test {
    private static final String S = null;

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        
        //1解析注解
        //1.1 获取该类的字节码文件对象
        Class<Test> testClass = Test.class;
        //2.获取上边的注解对象
        //其实就是在内存中去生成了一个该注解接口的子类实现对象。
        /*
         * * 在程序使用(解析)注解:获取注解中定义的属性值
                1. 获取注解定义的位置的对象  (Class,Method,Field)
                2. 获取指定的注解
                    * getAnnotation(Class)
                    //其实就是在内存中生成了一个该注解接口的子类实现对象
        
                            public class ProImpl implements Pro{
                                public String className(){
                                    return "cn.itcast.annotation.Demo1";
                                }
                                public String methodName(){
                                    return "show";
                                }
                            }
                3. 调用注解中的抽象方法获取配置的属性值
         */
        pro an = testClass.getAnnotation(pro.class);   //就是这一句话、内存中干了上面的代码
        //3.调用注解对象中的抽象方法获取返回值
        String className = an.className();
        String methodName = an.methodName();


        //3.加载该类进内存
        Class<?> cls = Class.forName(className);
        //4.创建对象
        Object obj = cls.newInstance();
        //5.获取方法对象
        Method method = cls.getMethod(methodName);
        //6.执行方法
        method.invoke(obj);
        
        
        
    }

}

package DemoTest;

public class Demo2 {
    public void show()
    {
        System.out.println("Demo2 show");
    }

}
package DemoTest;

public class Demo2 {
    public void show()
    {
        System.out.println("Demo2 show");
    }

}
 

 

 

解析使用注解

原文:https://www.cnblogs.com/zxl1010/p/12022645.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!