8.3 成员变量的反射应用

来源:互联网 发布:国产篮球鞋知乎 编辑:程序博客网 时间:2024/06/05 20:47

p { margin-bottom: 0.21cm; }

暴力反射:暴力反射就是对于修饰符为private的一些成员变量强制设置为可以使用并且可以访问

设置为可以访问,但不能用实例化field的使用用getDeclaredField("x")得到字段名

得到值后设置为可以使用Fieldfieldx.setAccessible(true);

try{

//反射field(成员变量)

ReflectPointpt1 = newReflectPoint(3,5);

Fieldfieldy = pt1.getClass().getField("y");

//fieldy不是对象身上的变量而是类上的变量 如果要用此变量 需要用fieldy在对象身上取对象身上的变量

System.out.println(fieldy.get(pt1));

//对于私有的变量(修饰符为private),不能用getField进行取值

Fieldfieldx = pt1.getClass().getDeclaredField("x");

//x(私有变量)设置为可以访问

fieldx.setAccessible(true);

System.out.println(fieldx.get(pt1));

}catch(Exception e) {

//TODO:handle exception

}