假设我有这么一个类ReflectPoint,内容如下:
public class ReflectPoint {
private int x;
public int y;
public ReflectPoint(int x, int y) {
super();
this.x = x;
this.y = y;
}
}
下面的程序是通过反射得到成员变量的值,代码如下:
ReflectPoint reflectPoint=new ReflectPoint(3,5);
Field fieldX=reflectPoint.getClass().getDeclaredField("x");//传入成员名称
Field fieldY=reflectPoint.getClass().getDeclaredField("y");
fieldX.setAccessible(true);//私有的成员变量要声明为可见的,这就是书上说的暴力反射
System.out.println(fieldX.get(reflectPoint));
System.out.println(fieldY.get(reflectPoint));
输出结果:
3
5