p { margin-bottom: 0.21cm; }
暴力反射 : 暴力反射就是对于修饰符为private 的一些成员变量 强制设置为可以使用并且可以访问
设置为可以访问 ,但不能用 实例化field 的使用用getDeclaredField( "x" ) 得到字段名
得到值后设置为可以使用 Field 后 fieldx.setAccessible( true );
try {
// 反射 field (成员变量)
ReflectPoint pt1 = new ReflectPoint(3,5);
Field fieldy = pt1.getClass().getField( "y" );
//fieldy 不是对象身上的变量 而是类上的变量 如果要用此变量 需要用 fieldy 在对象身上取对象身上的变量
System. out .println(fieldy.get(pt1));
// 对于私有的变量 ( 修饰符为 private) , 不能用 getField 进行取值
Field fieldx = pt1.getClass().getDeclaredField( "x" );
// 将 x (私有变量)设置为可以访问
fieldx.setAccessible( true );
System. out .println(fieldx.get(pt1));
} catch (Exception e) {
// TODO : handle exception
}
暴力反射详解
本文详细介绍了如何利用Java反射机制访问和修改私有成员变量。通过示例代码解释了使用getDeclaredField方法获取私有字段,并设置其可访问性,进而读取和修改这些通常不可见的数据成员。
778

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



