黑马程序员技术交流社区
标题:
得到的Filed对象是对应到类上面的成员变量,还是对应到对.
[打印本页]
作者:
黑马---邢志伟
时间:
2012-6-15 21:31
标题:
得到的Filed对象是对应到类上面的成员变量,还是对应到对.
本帖最后由 黑马---邢志伟 于 2012-6-16 09:04 编辑
得到的Filed对象是对应到类上面的成员变量,还是对应到对象上的成员变量?求助,,这是看反射视频中遇到的问题。。。
作者:
信义明
时间:
2012-6-15 22:05
Field对应的对象时类中的成员变量,方法为:对象名.getClass().getField("类中的成员变量名")
如想得到对象上成员变量的值,Field对象.get(对象名)就能获得你想要得到的对象上的成员变量值
以上是类中成员变量的修饰符为public的情况
如果成员变量被私有,就用:对象名.getClass().getDeclaredField("私有的成员变量")
再用Field对象名.setAccessible(true)获得权限
再用Field对象名.get(对象名)得到那个对象上私有成员变量值
这些在张老师的视频里有,我写的看不明白的话,还是看视频吧,里面讲的很清楚
作者:
薄炳鑫
时间:
2012-6-15 22:14
Field字段属性是类上的,用来取某个对象上的对应字段,而不是对象上的。下面是举例的代码。
import java.lang.reflect.Field;
public class ReflectTest
{
public static void main(String[] args) throws Exception
{
ReflectPoint rp = new ReflectPoint(3, 5);
Field filedY = rp.getClass().getField("y");
//filedY的值是多少呢?是5吗,不是。这里的filedY不是对象身上的,而是类身上的,用来取某够对象上面的值。
System.out.println(filedY.get(rp));
}
}
public class ReflectPoint
{
public int x;
public int y;
public ReflectPoint(int x, int y)
{
super();
this.x = x;
this.y = y;
}
}
复制代码
作者:
黑马---邢志伟
时间:
2012-6-16 09:02
谢了,,,有一点明白了、、、
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2