黑马程序员技术交流社区
标题:
反射Field,访问类中公有、私有的成员变量
[打印本页]
作者:
bowen-xiao
时间:
2015-1-17 18:09
标题:
反射Field,访问类中公有、私有的成员变量
一、先创建一个我们将要反射的类,
ReflectTest.java
public class <span style="line-height: 30.7999992370605px;">ReflectTest </span>{
public int x;
private int y;
public ReflectTest(int x,int y ){
super();
this.x = x;
this.y = y;
}
}
复制代码
二、写入反射的方法
ReflectTest demo = new ReflectTest(3,5);//初始化实例
//fieldX不是对象上的变量,而是类上的,通过fieldX找到某个具体对象所对应的值
Field fieldX = demo.getClass().getField("x");//访问可见的成员变量x
System.out.println(fieldX.get(demo));//打印x的值
//用这个方法要暴力访问到反射对象下private成员
Field fieldY = demo.getClass().getDeclaredField("y");//访问类中所有已定义成员变量y
fieldY.setAccessible(true);//设置访问权限,可以访问private对象的成员变量y
System.out.println(fieldY.get(demo));//打印y的值
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2