Java 类的反射打印
时间: 2023-07-30 11:07:04 浏览: 42
要打印 Java 类的反射信息,可以使用 Java 的反射 API。以下是一个示例代码:
```java
import java.lang.reflect.*;
public class PrintClassReflection {
public static void main(String[] args) throws Exception {
Class<?> cls = Class.forName("java.util.ArrayList");
System.out.println("Class Name: " + cls.getName());
Field[] fields = cls.getDeclaredFields();
System.out.println("Fields: ");
for (Field field : fields) {
System.out.println("\t" + Modifier.toString(field.getModifiers()) + " " + field.getType().getName() + " " + field.getName());
}
Constructor<?>[] constructors = cls.getDeclaredConstructors();
System.out.println("Constructors: ");
for (Constructor<?> constructor : constructors) {
System.out.print("\t" + Modifier.toString(constructor.getModifiers()) + " " + constructor.getName() + "(");
Parameter[] parameters = constructor.getParameters();
for (Parameter parameter : parameters) {
System.out.print(parameter.getType().getName() + " " + parameter.getName() + ",");
}
System.out.println(")");
}
Method[] methods = cls.getDeclaredMethods();
System.out.println("Methods: ");
for (Method method : methods) {
System.out.print("\t" + Modifier.toString(method.getModifiers()) + " " + method.getReturnType().getName() + " " + method.getName() + "(");
Parameter[] parameters = method.getParameters();
for (Parameter parameter : parameters) {
System.out.print(parameter.getType().getName() + " " + parameter.getName() + ",");
}
System.out.println(")");
}
}
}
```
这个程序将打印出 ArrayList 类的反射信息,包括类名、字段、构造函数和方法。你可以修改 `Class.forName` 的参数来打印其他类的反射信息。