黑马程序员技术交流社区

标题: 反射Field,访问类中公有、私有的成员变量 [打印本页]

作者: bowen-xiao    时间: 2015-1-17 18:09
标题: 反射Field,访问类中公有、私有的成员变量


一、先创建一个我们将要反射的类,
ReflectTest.java
  1. public class <span style="line-height: 30.7999992370605px;">ReflectTest </span>{
  2. public int x;
  3. private int y;

  4. public ReflectTest(int x,int y ){
  5. super();
  6. this.x = x;
  7. this.y = y;
  8. }
  9. }
复制代码

二、写入反射的方法
  1. ReflectTest demo = new ReflectTest(3,5);//初始化实例
  2.                
  3.                 //fieldX不是对象上的变量,而是类上的,通过fieldX找到某个具体对象所对应的值
  4.                 Field fieldX = demo.getClass().getField("x");//访问可见的成员变量x
  5.                 System.out.println(fieldX.get(demo));//打印x的值
  6.                
  7.                 //用这个方法要暴力访问到反射对象下private成员
  8.                 Field fieldY = demo.getClass().getDeclaredField("y");//访问类中所有已定义成员变量y
  9.                 fieldY.setAccessible(true);//设置访问权限,可以访问private对象的成员变量y
  10.                 System.out.println(fieldY.get(demo));//打印y的值
复制代码









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2