1、引言
反射的重点在于这个“反”字,理解反射,重点要在于这个“反”的含义。既然是“反”,那么一定是与通常不一致的情况。那我们首先来看下正常情况下,Java程序从编写到运行的一个过程。
在Java中,万物皆是类。开发人员在编写Java代码时,就是一个创建并编写大量Java类的过程。Java程序运行时,ClassLoader就会将所有用到的Java类加载到JVM虚拟机中。如下是一个简单的Java示例代码,代码中定义了一个Person类,以及一个包含main函数作为程序入口的Main类 。在main函数里面,代码引用了Person类。
class Person {
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Main {
public static void main(String[] args) {
Person person = new Person("Joy");
System.out.println(person.getName());
}
}
这个小程序,从开发者层面来看,在开发这段小程序时,开发人员一定是知道main程序中依赖的Person类的详细信息,包括Person类的属性、方法等,所以开发人员可以在main函数中明确的使用Person这个类。
从代码的编译层面来看,在这个小程序的编译阶段,编译Main这个类时,编译器发现了对Person类的引用,那么编译器就一定会去找Person类的相关信息,然后将Person类进行编译,以便在Main类中可以正常使用。编译器如果没有找到P
Java反射机制详解:从概念到应用

本文深入探讨Java反射机制,从引言出发,解释了反射的基本概念,指出反射是在程序运行时动态获取类信息的能力。接着,通过一个示例展示了如何在运行时调用未知类的任意方法。此外,还阐述了反射的用途,特别是在框架如Spring和Mybatis中的应用。最后,再次解析了Class类的重要性,强调了在Java中一切皆为类与对象的哲学。
最低0.47元/天 解锁文章
872





