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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

HM刘鹏

初级黑马

  • 黑马币:7

  • 帖子:6

  • 精华:0

© HM刘鹏 初级黑马   /  2013-3-15 16:25  /  2655 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

总所周知,Java语言是完全面向对象的。类对属性和方法进行封装,通过访问修饰符提供外界可访问的权限。
但是通过反射可以获取类中的任何信息,包括私有信息。那么对于类而言,反射岂不是破坏了类的封装性和安全性。
如果是这样,java还安全吗?

请各位高手解答小弟的疑问?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-16 23:31

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
能解释的通俗易懂一些吗?
回复 使用道具 举报
javaMaster 发表于 2013-3-15 16:44
能解释的通俗易懂一些吗?

反射,可以通过setAccessible方法使权限可以访问public,protected,private的字段!
就算是暴力入侵了,这种方法破坏了JAVA原有的权限体系,他的执行效率也不高。
嗯,只是这一点也不能说是java不安全,只能说他存在一定的入侵口,有一定的风险,你也知道要是使用反射,首先也知道那个类的名称啊,方法名称和其对应的方法参数列表和属性名称等这些信息,才能操作!
回复 使用道具 举报
有得就有失,反射可以使得程序更加的灵活,可扩展性更强,再说没有绝对的安全,只要安全性在可控范围内就可以了。就好像java为了的跨平台性而使用了虚拟机技术,跨平台的问题是解决了,但是效率被C语言甩的老远{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马