黑马程序员技术交流社区
标题:
什么是暴力反射呢?
[打印本页]
作者:
任亚俊
时间:
2013-12-26 16:39
标题:
什么是暴力反射呢?
1.什么是暴力反射呢?
2.是不是调用一个本来是私有属性的方法或属性呢?
3.暴力反射有什么具体应用吗?
4.希望看看暴力反射的关键代码。
作者:
Diaraelo
时间:
2013-12-26 18:07
我也是才学到反射,所以了解不太多,关于暴力反射的作用我想大概就是运用在获取私有数据上比较常用吧,因为一般在其他类是无法获取一个另外一个类对象的私有变量和数据,通过暴力反射的效果就可以取出这个你想要的数据了。个人感觉在很多地方都会很有用吧,应该是sun公司的工程师们发现很多情况下必须在外界获取私有数据而添加的功能吧。比如游戏修改器应该就运用到了暴力反射的功能,(假如需要修改内存中的数据)
作者:
汪洋大海
时间:
2013-12-26 18:27
ClassDemo cd = new ClassDemo(3,6);
//通过对象获得对应的Class对象。再获取指定的成员变量对象。注意的是:获取的不是成员变量的值。
Field fieldx = cd.getClass().getDeclaredField("x");
//如果要访问类中私有的成员变量,就要用下面这步,暴力反射。
fieldx.setAccessible(true);
//获取指定对象对应的这个成员变量的值。。注意:返回的是object。
int x = (Integer)fieldx.get(cd);
System.out.println(x);
作者:
任亚俊
时间:
2013-12-26 18:51
汪洋大海 发表于 2013-12-26 18:27
ClassDemo cd = new ClassDemo(3,6);
//通过对象获得对应的Class对象。再获取指定的成员变量对象。注 ...
thank you。。。。。
作者:
hurryup
时间:
2013-12-27 16:42
关于暴力反射的问题,张孝祥老师在java增强中的成员变量的反射中提到过。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2