在Java中添加新字段时更新相等

在Java中添加新字段时更新相等,java,dependencies,equality,Java,Dependencies,Equality,我已经向类中添加了一些新字段,但它已经有了一个.equals()覆盖了代码的其他部分所依赖的字段。在不破坏代码的其他依赖部分的情况下,向类添加新字段并更新其相等性检查的最佳方法是什么 我的第一个想法是为需要这些字段的特定代码部分创建一个原始类的子类,但这似乎有点混乱,耦合太紧密。如果向类中添加了影响相等逻辑的新字段,则还需要修改equals()和hashCode()。如果您的其他类因此而中断,那么您的设计一开始就很脆弱。@Kayaman谢谢。我不明白,当需要基于字段的相等时,设计如何更适合不中断

我已经向类中添加了一些新字段,但它已经有了一个
.equals()
覆盖了代码的其他部分所依赖的字段。在不破坏代码的其他依赖部分的情况下,向类添加新字段并更新其相等性检查的最佳方法是什么


我的第一个想法是为需要这些字段的特定代码部分创建一个原始类的子类,但这似乎有点混乱,耦合太紧密。

如果向类中添加了影响相等逻辑的新字段,则还需要修改
equals()
hashCode()
。如果您的其他类因此而中断,那么您的设计一开始就很脆弱。@Kayaman谢谢。我不明白,当需要基于字段的相等时,设计如何更适合不中断。i、 e.在测试断言中。你知道我可以在哪些资源中阅读更多关于良好设计的内容来解释这一点吗?要么你的其他代码执行类似于
foo.equals(bar)
的操作,效果很好,要么你的其他代码对类的内部结构了解得太多。当然,如果愿意,您可以比较各个字段,但是
equals()
也会影响许多标准SDK类,因此您需要确保它是正确的。