黑马程序员技术交流社区

标题: 反射中既然有了getDeclaredField()还要getField()有什么意义吗 [打印本页]

作者: jwx555    时间: 2014-8-8 22:11
标题: 反射中既然有了getDeclaredField()还要getField()有什么意义吗
不管是否私有,getDeclaredField都能去访问,全都用它就足够
为什么还留着半个功能的getField?

作者: wisely    时间: 2014-8-8 22:16
首先,getDeclaredField很长……

然后,既然设置了属性权限修饰符,那么肯定是不想让人看,私有的东西可能是一环套一环,修改一处就完蛋。

这是暴力反射的前奏,听名字就知道不提倡的干活
作者: jwx555    时间: 2014-8-8 22:20
wisely 发表于 2014-8-8 22:16
首先,getDeclaredField很长……

然后,既然设置了属性权限修饰符,那么肯定是不想让人看,私有的东西可能 ...

好吧,我觉得第一个理由最有说服力
作者: star5603    时间: 2014-8-9 11:53
getField是可以获取到父类的共有字段的,而getDeclaredField只能获取本类所有字段
作者: liqi    时间: 2014-8-9 12:03
学习了。
作者: 执笔梦    时间: 2014-8-9 12:19
内部实现不一样
作者: 如果有梦    时间: 2014-8-9 12:25

getField只可以获取public方法,而getDeclaredField无修饰限制
作者: justin1258    时间: 2014-8-9 16:10
一般不建议访问非公有成员,所以getDeclaredField不建议使用。




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