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();
// 获取指定属性 (例如 "name")
Field nameField = clazz.getDeclaredField("name");
// 设置访问权限为 true,即使该字段是私有的
nameField.setAccessible(true);
// 获取属性值
String nameValue = (String) nameField.get(person);
System.out.println("Name: " + nameValue);
// 获取指定属性 (例如 "age")
Field ageField = clazz.getDeclaredField("age");
ageField.setAccessible(true);
int ageValue = (int) ageField.get(person);
System.out.println("Age: " + ageValue);
} catch (NoSuchFieldException | 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()
方法获取 person
对象的 Class
对象。getDeclaredField()
方法获取类中的特定字段(如 name
和 age
)。setAccessible(true)
方法允许访问私有字段。get()
方法从对象中获取字段的值,并将其打印出来。这个例子展示了如何使用 Java 反射机制来动态获取对象的属性值。
下一篇:java function接口
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站