import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) {
try {
// 创建一个示例对象
MyClass obj = new MyClass();
obj.setName("Reflection Example");
// 获取类的Class对象
Class<?> clazz = obj.getClass();
// 获取指定字段(假设字段名为name)
Field field = clazz.getDeclaredField("name");
// 如果字段是私有的,需要设置可访问
field.setAccessible(true);
// 获取字段的值
String value = (String) field.get(obj);
System.out.println("Field value: " + value);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
class MyClass {
private String name;
public void setName(String name) {
this.name = name;
}
}
MyClass
类的实例,并通过 setName
方法设置了字段 name
的值。Class
对象:使用 obj.getClass()
获取 MyClass
类的 Class
对象。clazz.getDeclaredField("name")
获取名为 name
的字段。如果字段不存在,则会抛出 NoSuchFieldException
。private
修饰符),则需要调用 field.setAccessible(true)
来允许反射访问该字段。field.get(obj)
获取字段的值,并将其转换为字符串类型。NoSuchFieldException
和 IllegalAccessException
。这段代码展示了如何通过 Java 反射机制获取对象中字段的值。
上一篇:java 获取请求方ip
下一篇:this在java中的作用
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站