Java equals():反映或不反映

前端之家收集整理的这篇文章主要介绍了Java equals():反映或不反映前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题与覆盖大量字段的对象的equals()方法有关.首先,让我说,这个大对象不能分解成多个组件,而不违反OO原则,所以告诉我“没有类应该有超过x字段”不会有帮助.

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

--code removed because it was too distracting--

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

优点:

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

缺点:

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

有什么想法吗?

解决方法

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

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

P.P.S.我相信你已经考虑过HashCodeBuilderEqualsBuilder.

猜你在找的Java相关文章