加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – getDeclaredField(String)与bean中私有字段的getMetho

发布时间:2020-12-14 19:12:15 所属栏目:Java 来源:网络整理
导读:我有一个bean,我想通过反射访问它的属性.我以字符串形式接收属性名称. bean具有私有字段的getter方法. 我目前使用getDeclaredField(fieldName)获取该字段,使用setAccessible(true)使其可访问,然后使用get检索其值. 另一种方法是将字段名称大写并将get添加到

我有一个bean,我想通过反射访问它的属性.我以字符串形式接收属性名称. bean具有私有字段的getter方法.

我目前使用getDeclaredField(fieldName)获取该字段,使用setAccessible(true)使其可访问,然后使用get检索其值.

另一种方法是将字段名称大写并将get添加到它的前面,然后从类中获取该名称的方法,最后调用该方法以获取私有字段的值.

哪种方式更好?

编辑

也许我应该用“更好”来解释我的意思……通过“更好”,我的意思是在最佳实践意义上.或者,如果有任何微妙的警告或差异.

最佳答案
这取决于你的使用,但一般来说我更喜欢使用getter,因为这是“正常”的方式,并且在更多情况下会做类开发人员期望完成的事情.

原则上,如果班级的开发人员将该字段设为私有,则可以随意进行,例如,如果可以以其他方式计算,则可以在以后删除它.然后,如果你不幸在3个月后再也没有人记得的话,那么现场接近会立即破裂.

请注意,像apache commons BeanUtils这样的库(我相信Spring中也有一个)可以为你做这件事,并提供更健全的界面,例如哈希映射.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读