先看一个生活中的“反射”,
人们可以通过X光机,可以拍出X光片,X光片上可以显示出人体的构成,我们通过X光片研究人体构成的过程称为“反射”。
每一个Java的Class文件都包含成员变量、构造方法、成员方法这些信息,我们通过一个Class类去进行描述,通过使用Class对象中的方法、成员变量、而不从原先类中使用,这一过程就叫做反射。
Java反射机制:其实就是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制,由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行期仍然可以扩展。
我们要想通过反射去使用一个类,首先就要获取到类型为Class类型的对象,也就是类型为Class类型的对象。有三中方式获取Class类型的对象。
public class Test {
public static void main(String[] args) throws ClassNotFoundException {
// 1.使用类的class属性,这种方法最简单
Class demoClass = Demo.class;
System.out.println(demoClass);
// 2. 使用类的getClass方法
Demo demo1 = new Demo();
Class extends Demo> aClass = demo1.getClass();
System.out.println(aClass);
// 3.可以将字符串中的数据【配置】到配置文件中,可以随时修改配置文件中的内容,灵活性更高。
Class> aClass1 = Class.forName("demo.Demo");
System.out.println(aClass1);



