java 反射

142 阅读1分钟

反射的定义:

Java的反射(reflection)机制是指在 程序的运行状态 中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键

程序的运行状态指的是:

编译期:a.java --->a.class 运行期:a.class-----类的加载

image.png

对于一个字节码文件.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();