Java 类的反射打印 属性及值
时间: 2023-08-01 09:15:08 浏览: 89
Java实现简单GA算法求函数极值
5星 · 资源好评率100%
可以使用 Java 的反射机制来获取类的属性及其值,具体实现如下:
```
import java.lang.reflect.Field;
public class ReflectionDemo {
public static void main(String[] args) throws Exception {
// 获取类的对象
MyClass myObj = new MyClass();
// 获取类的 Class 对象
Class clazz = myObj.getClass();
// 获取所有的属性
Field[] fields = clazz.getDeclaredFields();
// 遍历所有属性并打印属性名及其值
for (Field field : fields) {
// 设置访问权限,否则会报 IllegalAccessException 异常
field.setAccessible(true);
System.out.println(field.getName() + " = " + field.get(myObj));
}
}
}
class MyClass {
private int num = 100;
private String str = "Hello World";
}
```
在上面的代码中,首先创建了一个 MyClass 类的对象 myObj。然后通过 myObj.getClass() 方法获取 MyClass 类的 Class 对象 clazz。
接着,使用 clazz.getDeclaredFields() 方法获取 MyClass 类中所有的属性 fields。
最后,通过遍历 fields 数组并调用 field.get(myObj) 方法获取属性值,并将属性名及其值打印出来。需要注意的是,由于 MyClass 类中的属性都是私有的,所以需要设置访问权限,否则会抛出 IllegalAccessException 异常。
阅读全文