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
}