import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) {
try {
// 创建一个示例对象
Person person = new Person("John", 30);
// 获取类的 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("Field Name: " + fieldName + ", Value: " + 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 类的实例,该类有两个私有属性 name 和 age。person.getClass() 获取 Person 类的 Class 对象。clazz.getDeclaredFields() 获取 Person 类中声明的所有字段(包括私有字段)。for 循环遍历每个字段,并使用 field.setAccessible(true) 设置私有字段为可访问。field.getName() 获取字段名,使用 field.get(person) 获取字段值。这段代码展示了如何使用 Java 反射机制获取对象的属性名和对应的值。
上一篇:java string转char
下一篇:java基本类型有哪八种
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站