视频中老师讲到一下的代码
ReflectPoint pt1 = new ReflectPoint (3,5);
Field fieldY = pt1.getClass().getField("y");
System.out.println(fieldY.get(pt1));
打印结果自然不用说 Y 的值是五,
其中视频讲解到 fieldY 是类上的变量 而不是对象身上的变量,也就是说可以代表是pt1 也可以代表是pt2 ;
但是大家有没有想过这样一个问题呢?
那么假设有这样一段代码
ReflectPoint pt2 = new ReflectPoint (3,5);
那么要打印pt2 中y的值该如何打印呢?
是直接
System.out.println(fieldY.get(pt2)); 呢?
还是重写
Field fieldY = pt2.getClass().getField("y");
在打印呢?
如果是前者那么能否打印出来呢?
如果是后者那是不是说 filldy 必须要重新指向目标呢?如果重新指向目标是不是就代表fieldY 是面向对象的,是对象身上的变量呢?这样的话是不是跟老师说的话有冲突呢?
|