这个问题与覆盖大量字段的对象的equals()方法有关.首先,让我说,这个大对象不能分解成多个组件,而不违反OO原则,所以告诉我“没有类应该有超过x字段”不会有帮助.
继续下去,当我忘记检查一个平等的领域时,问题就结束了.因此,我的equals方法是不正确的.那我以为用反思:
--code removed because it was too distracting--
这个帖子的目的不一定是重构代码(这甚至不是我使用的代码),而是获取关于这是否是一个好主意的输入.
优点:
>如果添加了一个新字段,则会自动包含该字段
>该方法比30语句更简洁
缺点:
>如果添加了一个新的字段,它会被自动包含,有时这是不合需要的
>性能:这必须更慢,我不觉得需要打破分析器
>在比较中将特定字段列入忽略是有点难看的
有什么想法吗?
解决方法
如果由于性能原因确实需要将其列入白名单,请考虑使用注释来指明要比较的字段.此外,如果您的字段对于equals()没有很好的实现,则此实现将无法正常工作.
附:如果你去等于()的路由,不要忘记做类似的hashCode()的事情.
P.P.S.我相信你已经考虑过HashCodeBuilder和EqualsBuilder.