反射

  1. 反射是Java自我管理(类, 对象)的机制

    • 可以通过反射机制发现对象的类型 发现类型的方法/属性/构造器
    • Java 反射 可以创建对象并访问任意对象方法和属性等
  2. 创建对象的时候:
    a Person p = new Person();
    b 利用反射来创建对象(3种,前两种必须知道)
    <<Demo8.java>>

  3. Class 加载
    类加载到内存: java 将磁盘类文件加载到内存中,为一个
    对象(实例)这个对象是Class的实例,也就是 这些对象都是
    Class实例

  4. 带参数构造方法如何创建对象?

<<Demo9.java>>

  1. 通过反射来访问方法
    a 获得class对象
    b 获得Methed(方法)对象
    c 选择是否压制访问控制
    d 通过反射调用对象的底层方法
    案例: ref2.Demo1
    <<Demo1.java>>
  2. 通过反射来访问属性
    a 获得class对象
    b 获得Field(属性)对象
    c 选择是否压制访问控制
    d 通过反射来访问对象的属性
    案例: ref2.Demo2
    <<Demo2.java>>
  3. 可以通过反射机制发现类型的方法/属性/构造器
    案例: ref2.Demo3
    <<Demo3.java>>
    PropertyDescriptor: 反射中专门用来操作javaBean
    // 的属性(一个)
    // 构造方法:PropertryDescriptor(属性的名字,java.Class);
    User user2 = new User();
    Class<?> type2 = User.class;
    PropertyDescriptor descriptor =
    new PropertyDescriptor("uname",type2);
    Method setMethod = descriptor.getWriteMethod();
    setMethod.invoke(user2, "no123");
    // System.out.println(user2.getUname());
    Method getMethod = descriptor.getReadMethod();
    System.out.println(getMethod.invoke(user, null));
posted @ 2016-12-31 14:53  乱笙歌  阅读(119)  评论(0)    收藏  举报