Java 反射机制是 Java 编程语言的一个核心特性,它允许程序在运行时动态地获取或设置对象的属性、调用对象的方法。以下是一些关于 Java 反射的基础知识:

什么是反射?

  • 反射机制允许程序在运行时检查或修改类的行为。
  • 它可以访问类的私有成员,这在常规情况下是无法直接访问的。
  • 反射机制主要用于框架开发,如 Spring 和 Hibernate。

反射的基本用法

  • 获取 Class 对象:可以通过 Class.forName()object.getClass() 获取类的 Class 对象。
  • 获取字段:使用 Class.getDeclaredField() 可以获取类的字段。
  • 获取方法:使用 Class.getDeclaredMethod() 可以获取类的方法。
  • 创建对象:使用 Class.newInstance()Constructor.newInstance() 可以创建对象。

反射的示例

public class ReflectionExample {
    private String privateField = "Private Field";

    public static void main(String[] args) throws Exception {
        ReflectionExample instance = new ReflectionExample();
        Class<?> clazz = instance.getClass();

        // 获取私有字段
        Field field = clazz.getDeclaredField("privateField");
        field.setAccessible(true);
        String value = (String) field.get(instance);
        System.out.println("私有字段值: " + value);

        // 调用私有方法
        Method method = clazz.getDeclaredMethod("privateMethod");
        method.setAccessible(true);
        method.invoke(instance);
    }

    private void privateMethod() {
        System.out.println("私有方法被调用");
    }
}

扩展阅读

Java Reflection