反射技术复习
反射
- 什么是反射
- 反射就是通过一定的技术来获取运行时候的.class文件, 里面包含了这个类的所有信息, 我们就间接的获取了这个类的所有信息.
- 反射的第一步是什么:
- 获取Class类对象
- 如何获取 Class 类对象:
- 通过 Class 的静态方法forName(“类的地址”)
- 通过 类名.class
- 通过 对象引用.getClass()
类对象中的成分
-
构造器对象
-
-
对于有参的构造器对象, 构造器中的参数也是类对象类型的, 具体看下面的源码.
-
-
-
成员变量对象
- 获取类对象中成员变量对象的方法:
- getDeclaredFileld(String name)
- 反射得到成员变量后可以做什么
- 赋值: void set(Object o, Object value)
- 需要一个当前类的对象
- 取值 Object get(Object o)
- 需要一个当前类的对象
- 赋值: void set(Object o, Object value)
- 对于非公开的成员变量, 通过成员变量的 setAccessible(boolean) 来暴力反射
- 获取类对象中成员变量对象的方法:
-
方法对象
反射绕过编译阶段的泛型给List插入任意类型的数据:
- 代码图片
通过反射获取类中的所有成员变量并输出到文件中
- 打印流建议使用 PrintStream…
- 图片代码