1.Field-api http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/lang/reflect/Field.html#get(java.lang.Object)
public class AccessibleTest {
private int id;
private String name;
public AccessibleTest() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.test.accessible.AccessibleTest");
AccessibleTest at = new AccessibleTest();
at.setId(1);
at.setName("AT");
for (Field f : clazz.getDeclaredFields()) {
f.setAccessible(true);//AccessibleTest类中的成员变量为private,故必须进行此操作
System.out.println(f.get(at));//获取当前对象中当前Field的value
}
本文通过示例详细介绍了如何使用Java反射API中的Field类来访问和修改对象的私有字段。特别是针对私有字段不可直接访问的问题,演示了如何通过设置Field实例的setAccessible(true)使其变得可访问。
411

被折叠的 条评论
为什么被折叠?



