反射
反射:剖析Java类中的各个组成部分,映射成为一个个Java对象
Java类中的组成部分通常是:
1、构造方法-------对应constructor类型
2、成员方法-------对应field类型
3、成员属性-------对应method类型
要获取以上3个对象,首先要获取到Class对象
获取方式
1、通过类名.class;
2、通过类的对象:对象名.getClass();
3、Class.forName("完整类名");
获取到之后使用Class 接受。
1、构造方法-------对应constructor类型,有了constructor对象就能通过constructor类里面的newInstance(Object...o)创建这个类的对象,获取所有的constructor使用getConstructor();获取所有非public constructor,使用getDeclaredConstructor();可以通过SetAccessible()可以设置是否进行权限检查,参数是boolean。
通过Class的getConstructor()获取
2、成员方法-------对应field类型
与获取Constructor一样,有set(Object o1(代表当前执行这个操作的对象),Object o2(需要赋的值))和get(Object o(获取这个对象的属性,o指的就是这个对象))方法
3、成员属性-------对应method类型
object invoke(Object obj,Object param)参数obj:执行这个方法的对象 param:方法的参数
如果方法是静态的怎么使用
因为是静态的,所以不需要对象调用,直接写null。
如果方法的参数是数组类型怎么传参数
1、强制转换成Object。
2、中外层再包装一层数组