1. java反射

参考:https://www.cnblogs.com/baizhanshi/p/6605156.html

1. 反射机制是什么?

    在 运行状态中,

    动态 获取 类的 字节码对象, 字段对象, 方法对象,

    动态调用 类的 字节码对象, 字段对象, 方法对象    的这种功能 称为 反射机制。

2. 反射能做什么?

     得到一个类的字节码对象 :   .class,  class 对象封装的 类的元信息

     使用类的字节码对象 构造 一个类的对象,

     得到或 调用  任意一个类的 字段对象和方法对象,

     实现 动态代理。

3.    有几种方式 获得 字节码对象, Class对象?

        三种:

             Class.forName("完整路径名类名");

              类对象.getClass();

               类名.class;

4.    通过 Class  对象, 可以做什么?

            获得 类的 完整路径名类名;

            获得该类的所有父接口 的字节码对象;

            获得该类的 父类的 字节码对象;

            调用 newInstance() 生成 该类的 一个对象;【事实上 应用了默认的构造方法】

            获得该类的 所有 构造方法的 构造器对象;

            获得 该类的 所有 属性的 字段对象,传参字段名 可以得到 特定某个字段对象;

            获得 该类的 所有 方法的 方法对象,传参 方法名、方法参数字节码对象 可以得到 特定某个 方法对象;

5.  构造器对象 可以做什么?

        获得 对应 构造方法的  参数类型 的 字节码对象;

      调用 newInstance()并传入对应的参数,即调用对应的构造方法生成 该类的 一个对象;

6. 字段对象 可以做什么?

        获得 对应属性的 权限修饰符、属性字段类型的字节码对象、字段名;

    【权限修饰符 是 int 类型, 通过 Modifier.toString(temp)获得 修饰符名字符串】

7. 方法对象 可以做什么?

      可以 获得 对应方法的 返回值类型 的 字节码对象, 参数类型的字节码对象,抛出异常类型的字节码对象;

        可以 获得 对应方法的  权限修饰符, 可以获得方法名;

8. 反射机制的应用?

    在泛型为Integer的ArrayList中存放一个String类型的对象。

   通过反射取得并修改数组的信息

  通过反射机制修改数组的大小

  将反射机制应用于工厂模式

你可能感兴趣的:(1. java反射)