public void setProperty(Object obj, String propertyName, Object value){
try {
Field f = obj.getClass().getDeclaredField(propertyName);
// f.setAccessible(true); 这句代码有什么作用?求解释,我看了API还是没有搞明白。
f.set(obj,value);
} catch (Exception e) {
System.out.println("修改失败");
}
}
你把 f.setAccessible(true);这行代码注释起来运行下试试,如果报错的话(不一定报错),报错错误的意思是f这个成员对象,不可见是私有的,如果是可以访问的就不会报错,这种用法称为"暴力反射",就是用反射的方法访问对象中部可见的成员变量. f.setAccessible(true);这行代码的意思是设置f这个成员对象表示的成员变量为可访问的. |