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

Java equals():反映或不反映

发布时间:2020-12-14 05:30:18 所属栏目:Java 来源:网络整理
导读:这个问题与覆盖大量字段的对象的equals()方法有关.首先,让我说,这个大对象不能分解成多个组件,而不违反OO原则,所以告诉我“没有类应该有超过x字段”不会有帮助. 继续下去,当我忘记检查一个平等的领域时,问题就结束了.因此,我的equals方法是不正确的.那我以为
这个问题与覆盖大量字段的对象的equals()方法有关.首先,让我说,这个大对象不能分解成多个组件,而不违反OO原则,所以告诉我“没有类应该有超过x字段”不会有帮助.

继续下去,当我忘记检查一个平等的领域时,问题就结束了.因此,我的equals方法是不正确的.那我以为用反思:

--code removed because it was too distracting--

这个帖子的目的不一定是重构代码(这甚至不是我使用的代码),而是获取关于这是否是一个好主意的输入.

优点:

>如果添加了一个新字段,则会自动包含该字段
>该方法比30语句更简洁

缺点:

>如果添加了一个新的字段,它会被自动包含,有时这是不合需要的
>性能:这必须更慢,我不觉得需要打破分析器
>在比较中将特定字段列入忽略是有点难看的

有什么想法吗?

解决方法

如果由于性能原因确实需要将其列入白名单,请考虑使用注释来指明要比较的字段.此外,如果您的字段对于equals()没有很好的实现,则此实现将无法正常工作.

附:如果你去等于()的路由,不要忘记做类似的hashCode()的事情.

P.P.S.我相信你已经考虑过HashCodeBuilder和EqualsBuilder.

(编辑:李大同)

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

    推荐文章
      热点阅读