Java反射是Java语言中一个非常强大的特性,它允许在运行时动态地访问和修改类的字段、方法和构造函数。以下是一些Java反射的常见示例。

1. 获取类信息

Class<?> clazz = Class.forName("java.util.ArrayList");
String className = clazz.getName();
System.out.println("类名:" + className);

2. 创建对象

Class<?> clazz = Class.forName("java.util.ArrayList");
Object instance = clazz.newInstance();
System.out.println("创建的对象:" + instance);

3. 获取字段

Class<?> clazz = Class.forName("java.util.ArrayList");
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
    System.out.println("字段名:" + field.getName());
}

4. 获取方法

Class<?> clazz = Class.forName("java.util.ArrayList");
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
    System.out.println("方法名:" + method.getName());
}

5. 调用方法

Class<?> clazz = Class.forName("java.util.ArrayList");
Object instance = clazz.newInstance();
Method addMethod = clazz.getMethod("add", Object.class);
addMethod.invoke(instance, "Hello");
System.out.println(instance);

更多关于Java反射的详细信息和高级用法,可以参考Java反射教程

(center)Java_Reflection