反射
反射
- java的灵魂
-
java动态性的体现;
-
用途:在运行期探究和使用编译期未知的类
获取Class对象
-
1、通过实例对象,获取该实例的Class对象
`getClass方法来自于Object` 所有类型都有class对象(基本、引用 void(返回类型)) 该方法只能用于获取引用类型的class对象 该方式不具备动态效果,在运行之前的加载期间JVM已经产生好了Class对象 -
2、通过类型名称获取Class对象
一个类的Class对象只有一个 基本数据类型获取.Class只能在JDK1.5以后使用 该方式可以取得所有类型的Class对象 该方式不具备动态效果 -
3、通过类型名称的字符串形式获取Class对象
该方法只能获取类类型或接口类型的Class对象 唯一一种具备动态性的反射方式,在运行之前的加载期间JVM不知道什么时候要用到, 是在运行到这句代码的时候才被通知要加载这个类
探究这个类的信息
- 1、根据属性名得到指定的属性
- 2、构造的探究
- 3、行为的探究
操作探究出来的信息
-
1、通过探究出来的构造方法产生实例对象
调用Constructor对象的newInstance方法产生实例化对象 调用class对象的newInstance方法产生实例化对象 只能调用公共无参构造 -
2、通过探究出来的属性,完成对属性的赋值、取值
对属性进行赋值(第一个参数是被赋值的实例化对象) 对属性进行取值 -
3、通过探究出来的方法,进行调用
浙公网安备 33010602011771号