反射基础知识初入(up晚上回家再补完剩下的)
反射
(一)概念:
可对成员变量 成员方法 构造方法进行访问/赋值
(二)例子:
通过类名调用方法或者成员变量的时候,敲代码的同时,在代码下方生成一个方法栏,这就是利用反射获取了类里面的变量或者方法
(三)途径:
获取class的字节码文件,然后从字节码里面获取字段
获取class对象的三种途径如下:
1.第一个方法最为常用。其常常在源代码阶段获取class
2.第二个方法常作为参数传递。其在加载时,在内存中获取class
3.第三个方法常见于具有了该类的对象的时候才可以使用。其在运行阶段,获取对象时运行
(四)获取构造方法:
补充一:各个限制符对应的位掩码值
public -- 1
protected -- 4
private -- 2
default -- 0
补充二:如果获取到的是protected private的构造方法,则需要调用setAccessible()方法,将访问权限临时修改为true,方可成功创建
(五)获取成员变量:
整体上与获取构造方法无甚大异
补充:凡是调用默认public的方法都没有Declared,凡是能调用所有的都要Declared