反射的定义:
Java的反射(reflection)机制是指在 程序的运行状态 中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键
程序的运行状态指的是:
编译期:a.java --->a.class 运行期:a.class-----类的加载
对于一个字节码文件.class,虽然表面上我们对该字节码文件一无所知,但该文件本身却记录了许多信息。Java在将.class字节码文件载入时,JVM将产生一个java.lang.Class对象代表该.class字节码文件,从该Class对象中可以获得类的许多基本信息,这就是反射机制。
反射的基本使用
获取 Class 类对象
获取反射中的Class对象有三种方法。
第一种,使用 Class.forName 静态方法。
Class class1 = Class.forName("com.ReflectionTest");
第二种,使用类的.class 方法
Class class2 = ReflectionTest.class;
第三种,使用实例对象的 getClass() 方法。
ReflectionTest reflectionTest = new ReflectionTest();
Class class3 = testReflection.getClass();