黑马程序员技术交流社区

标题: 既然成员被private修饰,为什么还有用setAccessable [打印本页]

作者: 叶涛    时间: 2011-10-18 18:51
标题: 既然成员被private修饰,为什么还有用setAccessable
既然成员被private修饰,为什么还有用setAccessable改变成员的私有性,岂不是违背了封装性的原理?
作者: 赵玉成    时间: 2011-10-18 19:45
xx.setAccessible(true);指示反射的对象在使用时取消Java 语言访问检查,只是让有足够特权的复杂应用程序来操作对象吧,特殊情况用的吧,并没有改变原有类的私有性质吧,我是这样理解。{:soso_e129:}
作者: 宁超    时间: 2011-10-18 21:38
关于对setAccessable的误解,我找到一篇文章,希望对你有帮助。
http://www.2cto.com/kf/201103/86464.html
作者: 董浩    时间: 2011-10-19 17:14
看下API中  java.lang.reflect 里面 说的比较清楚了
作者: 张邦庆    时间: 2011-10-19 21:05
这就叫做破解吧setAccessible()俗称暴力反射
作者: 巴蜀贤君    时间: 2011-10-19 21:30
不错说的都很好!其实程序代码设置访问权限不是一个绝对的概念,只是相对的,总会有访问和调用的方法,一般我们人为的会为访问提供自己的方法,比如我们的getter和setter方法,在java反射中提供了一种强硬的访问方式setAccessible(true),也就是上面说的暴力反射访问。这个记得有这种方式就可以,实际用到的不是特别多。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2