import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) {
try {
// 创建一个示例对象
Person person = new Person("张三", 25);
// 获取类的Class对象
Class<?> clazz = person.getClass();
// 获取所有声明的字段(包括私有字段)
Field[] fields = clazz.getDeclaredFields();
// 遍历所有字段
for (Field field : fields) {
// 设置可访问私有字段
field.setAccessible(true);
// 获取字段名称和值
String fieldName = field.getName();
Object fieldValue = field.get(person);
// 输出字段名称和值
System.out.println("字段名: " + fieldName + ", 值: " + fieldValue);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Person 类的实例,并设置了它的属性值。person.getClass() 获取该对象对应的 Class 对象。getDeclaredFields() 方法获取该类中声明的所有字段,包括私有字段。field.setAccessible(true) 来允许访问这些字段。field.getName() 获取字段名称,通过 field.get(person) 获取字段的值。这段代码展示了如何使用Java反射机制来获取对象的属性及其对应的值。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站