Java 的反射机制是什么?主要应用在哪些场景?
Java的反射机制是指程序在运行时,能够获取自身类的信息(如类名、属性、方法、构造器等),并动态操作这些信息的能力。正常情况下,Java代码编译时类型已确定,而反射打破了这种编译期约束,让程序在运行时灵活操作类和对象。
反射的实现依赖于java.lang.reflect包中的类,核心包括:Class类(代表类的字节码对象,通过Class.forName()、对象.getClass()或类名.class获取);Constructor类(用于获取和调用构造器,创建对象);Method类(获取和调用方法,包括私有方法);Field类(获取和修改属性,包括私有属性)。例如,通过反射调用私有方法:
public class ReflectDemo {private void privateMethod() {System.out.println("调用私有方法");}public static void main(String[] args) throws Exception {Class<?> clazz = ReflectDemo.class;Object obj = clazz.newInstance();Method method = clazz.getDeclaredMetho