import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) {
try {
// 创建一个示例对象
MyClass obj = new MyClass();
obj.setName("Java Reflection");
obj.setAge(25);
// 获取类的Class对象
Class<?> clazz = obj.getClass();
// 获取指定属性
Field nameField = clazz.getDeclaredField("name");
Field ageField = clazz.getDeclaredField("age");
// 设置属性可访问(如果是私有属性)
nameField.setAccessible(true);
ageField.setAccessible(true);
// 获取属性值
String nameValue = (String) nameField.get(obj);
int ageValue = (int) ageField.get(obj);
// 输出属性值
System.out.println("Name: " + nameValue);
System.out.println("Age: " + ageValue);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyClass {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
MyClass 类的对象,并设置了它的 name 和 age 属性。obj.getClass() 获取该对象对应的 Class 对象。clazz.getDeclaredField("name") 和 clazz.getDeclaredField("age") 分别获取 name 和 age 字段。setAccessible(true) 来允许反射访问这些私有字段。nameField.get(obj) 和 ageField.get(obj) 获取字段的实际值。这段代码展示了如何使用 Java 反射机制来获取对象的属性值。
上一篇:java xml解析
下一篇:java ||
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站