注解和反射

  1. Annotation注解:以"@注释名",可以添加一些参数,可以对程序作出一些解释

    @Target:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)

    @Retention:表示需要在什么级别保持改注解,用于描述注解的生命周期(RUNTIME)

    @Document:说明该注解将被包含在javadoc中

    @Inherited:说明子类可以继承父类中的该注解

    使用@interface自定义注解,自动继承Java.lang.annotation.Annotation接口

  2. 反射 (类:加载:生成class类,链接:二进制代码合并到JVM中,初始化)

    java.lang.Class:代表一个类

    java.lang.reflect.Method/Field:代表类的方法/成员变量

    java.lang.reflect.Constructor:代表类的构造器

    获取Class类的实例:

    1. Class class=Person.class;
    2. Class class=Person.getClass();
    3. Class class=Class.forName("包名路径.类名");
  3. 动态创建对象

    invoke(激活的意思)方法介绍: setName.invoke(user,"David");

    创建的user对象,激活user.setName方法,传递"David" setName方法的参数

    name.setAccessible(true); 关闭程序的安全检查,就可以操作class内的private属性或方法

    关闭检查,可以提高反射程序运行效率

posted @ 2021-07-05 16:16  DingGuo  阅读(37)  评论(0编辑  收藏  举报