- 什么是反射
java程序可以在运行期间动态的加载、解析和使用一些在编译阶段并不确定的类型,这一机制被称为“反射(reflection)”或者“内省(introspection)”.
- 反射机制提供的功能
1,加载运行时才能确定的类型
2,解析类的结构、获取其内部信息
3,操作该类型或其实例
1》访问属性
2》调用方法
3》创建新对象
- java.lang.class 类
class类的实例用于表示运行时的JAVA数据类型,包括类、接口、数组、枚举、注解和基本数据类型
在类加载时, Java虚拟机会自动创建相应的class对象
java.lang.reflect包
1,java.lang.reflect.fleld
2,java.lang.reflect.Method
3,java.lang.reflect.Costructor
4,java.lang.reflect.Modifer
5,java.lang.reflect.Array
- 使用反机制的基本步骤
- 获取目标类型相应的class对象
- 调用Class对象内省方法获取目标类成员信息
- 访问目标类方法信息/操作目标类成员
- 例一
- 例二
- 获取CLASS对象
针对引用数据类型
- 调用静态方法Class.ForName(String (class 全称包括包名))
- 调用Object类中定义的getClass()方法
- 使用.class 表达式
例:class c1 = String.class;
class c2 = Person.class;