拿捏Java:反射

46 阅读1分钟

一、反射

image.png

从class字节码文件获取+解剖

image.png

获取class(字节码文件)对象的三种方式

image.png

第二种方式一般用在锁对象上 —— synchronized (Student.class)

image.png

利用反射获取构造方法

image.png

代码实现:

image.png

获取想要的构造函数,传递相应的字节码文件:

image.png

获取构造函数的权限修饰符:

image.png

getDeclaredConstructor方法只是看到构造方法,无法使用私有权限的构造方法,因此若要使用私有权限的构造方法创建对象时,需要先调用setAccessible方法,表示临时取消权限校验(暴力反射),代码如下: (这段代码获取的构造方法con4是私有构造方法)

image.png

利用反射获取成员变量

image.png

image.png

image.png

image.png

利用反射获取成员方法

image.png

image.png

下面这个方法的参数:第一个参数是方法的名字,第二个参数是形参的字节码文件,有多个形参要写多个字节码文件

image.png

image.png

image.png

image.png