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