A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

既然成员被private修饰,为什么还有用setAccessable改变成员的私有性,岂不是违背了封装性的原理?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

5 个回复

正序浏览
宁超 黑马帝 2011-10-18 21:38:32
地板
关于对setAccessable的误解,我找到一篇文章,希望对你有帮助。
http://www.2cto.com/kf/201103/86464.html
回复 使用道具 举报
xx.setAccessible(true);指示反射的对象在使用时取消Java 语言访问检查,只是让有足够特权的复杂应用程序来操作对象吧,特殊情况用的吧,并没有改变原有类的私有性质吧,我是这样理解。{:soso_e129:}

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
不错说的都很好!其实程序代码设置访问权限不是一个绝对的概念,只是相对的,总会有访问和调用的方法,一般我们人为的会为访问提供自己的方法,比如我们的getter和setter方法,在java反射中提供了一种强硬的访问方式setAccessible(true),也就是上面说的暴力反射访问。这个记得有这种方式就可以,实际用到的不是特别多。
回复 使用道具 举报
这就叫做破解吧setAccessible()俗称暴力反射
回复 使用道具 举报
董浩 黑马帝 2011-10-19 17:14:05
楼主
看下API中  java.lang.reflect 里面 说的比较清楚了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马