码迷,mamicode.com
首页 > 编程语言 > 详细

Java 注解 反射

时间:2020-01-26 22:13:01      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:name   验证   getname   参数   有一个   tac   target   机制   lan   

注解:Java.lang.annotation;

1.定义: public @interface 注解名{String value(); int age();int id() default ""};

2.编译器中注解:@Override  @Deprecated  @SuppressWarnings   @Target( ElementType={ })  @Rentation(RentationPolicy={}) @Documented @Inherited

3. 自定义注解 @interface test{         }

反射:java.lang.reflection   java.lang.Class     (Pojo  属性  set/get   无参构造,  toString())

1.反射机制:获取类的任何内部信息,直接操作属性和方法。 

2.Class类和获取Class类实例 :  类.Class    对象.getClass()  Class.forName("  ") Integer.Type   类.class.getSuperClass();

                1.Class 本身也是一个类

                2.Class对象只能有系统建立对象

                3.一个加载的类在JVM中只会有一个Class实例

                4.一个Class对象对应的事一个加载到JVM里的一个.class文件

                5.每个类的实例都会记得自己是由哪个Class实例所生成的。

                6.通过Class可以完整的得到一个类中的所有被加载的结构

                7.Class类的Reflection的根源,针对任何你想动态加载、运行的类,唯有先获得相应的Class对象。

 

3.类的加载与ClassLoader

       1.加载.class 文件  2.验证:class文件是否符合jvm规范;准备:static,类变量 分配内存;解析:

  3.初始化:《clint》

   ClassLoader.getSystemclassloader();

        System.getProperty("java.class.path")

    根加载器null ----->   扩展类加载器  -------->   系统类加载器

4.创建运行时类的对象

      Class 

   getName() 

   getSimpleName() 

    getFields()    getDeclaredFields()

    getMehtods()  getDeclaredMthods()   getMethod("方法名","参数类型.class")

  getConstruct()

    newInstance()

    属性和方法都有setAcessible(true)

5.获取运行时类的完整结构

 f= Class . getAnotation(注解.class)     f.value();

  Field .getAnnotation(注解.class)      

6.调用运行时类的指定结构

 

Java 注解 反射

标签:name   验证   getname   参数   有一个   tac   target   机制   lan   

原文地址:https://www.cnblogs.com/chencn/p/12234363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!