成都网站网页制作,郑州网站建设培训学校,用php做的网站论文,公司做网站价格什么是反射#xff1f;
反射允许对成员变量#xff0c;成员方法和构造方法的信息进行编程访问。
这么说可能比较抽象#xff0c;可以简单理解为#xff1a;反射就是一个人#xff0c;可以把类里面的成员变量#xff0c;成员方法#xff0c;构造方法都获取出来。 并且可…什么是反射
反射允许对成员变量成员方法和构造方法的信息进行编程访问。
这么说可能比较抽象可以简单理解为反射就是一个人可以把类里面的成员变量成员方法构造方法都获取出来。 并且可以获取到成员变量、构造方法、成员方法的所有信息。
对于成员变量我们可以获取到它的 ①修饰符 ②属性名称 ③类型 ④ 获取变量值/赋值
对于构造方法可以获取到①修饰符 ②形参 ③方法名 甚至还可以利用获取出来的方法创建对象。
对于成员方法可以获取到①修饰符 ②形参 ③方法名 ④返回值 ⑤抛出的异常 ⑥注解 还可以运行获取出来的方法。 总的来说利用反射我们可以获取类里面的所有信息。 获取class对象的三种方式
① Class.forName(全类名) ②类名.Class ③ 对象.getClass()
那么这三种方式我们该使用哪一种呢
其实这3种方式对应着Java里面3种不同的阶段如果创建一个类的对象分为以下3个阶段 ①把java文件编写成class字节码文件。源代码阶段还没有把代码加载到内存中在硬盘中进行操作 此时我们可以使用方式① ②在运行代码前要先把字节码文件加载到内存中。加载阶段 ----方式② ③在内存中可以创建类的对象比如A a new A(); 运行阶段 ----方式③ 一般是这样使用并不绝对。 利用反射获取构造方法 Constructor类中用于创建对象的方法
T newInstance(Object... initargs): 根据指定的构造方法创建对象上面的getDeclaredConstructors()方法虽然可以获取所有的构造方法但是不能使用私有的构造方法来创建对象。先要取消自动检查setAccessible(true)。 利用反射获取成员变量 利用反射获取成员方法