在学习Field反射的时候遇到了一个问题先看如下代码:- public class ReflectTest {
- public static void main(String[] args) throws Exception{
- /*Constructor constructor1 = String.class.getConstructor(StringBuffer.class);
- String string2 = (String) constructor1.newInstance(new StringBuffer("abc")) ;
- System.out.println(string2.charAt(2));*/
- ReflectPoint pt1 = new ReflectPoint(4, 6) ;
- ReflectPoint pt2 = new ReflectPoint(5, 8) ;
- Field fieldX = pt1.getClass().getField("x") ;
- System.out.println(fieldX.get(pt1));
- System.out.println(fieldX.get(pt2));
- }
- }
复制代码- public class ReflectPoint {
- public int x ;
- private int y ;
- public ReflectPoint(int x, int y) {
- super();
- this.x = x;
- this.y = y;
- }
- }
复制代码
上面的代码中,Field fieldX = pt1.getClass().getField("x") ;这句话不管使用pt1还是pt2获得都是整个类里面的所有的x这个成员变量,而不是pt1这个对象里面的成员变量4是吧?
|