gpt4 book ai didi

java - 为具有多个字段的类覆盖 equals 的实用方法

转载 作者:行者123 更新时间:2023-11-29 04:22:36 25 4
gpt4 key购买 nike

我有一个包含大量数据成员的类——其中一些是用户自己定义的类,Lists、HashMaps 等......

假设有 20 个数据成员。

除了检查每个字段的相等性之外,是否有更实用的方法来覆盖 equals() 运算符?

例如(使用 Guava ):

HashMap<k,v> dataMember1;
String dataMember2;
CustomClass dataMember3;
etc...

@Override
public boolean equals(Object obj) {
Objects.deepEquals(this.dataMember1, obj.dataMember1) &&
Objects.equals(this.dataMember2, obj.dataMember2) &&
Objects.equals(this.dataMember3, obj.dataMember3) &&
etc...
}

我以前在生产代码中见过这些大块,但它们总是显得那么多余。

最佳答案

Java 有一个注解处理器,叫做 Lombok ,它提供了一些很好的注释来处理样板代码,包括 @EqualsAndHashCode .

在可接受/需要不变性的情况下,ImmutablesGoogle AutoValue库提供用于创建值类的注释以及所有样板代码,包括 equals() 方法。

关于java - 为具有多个字段的类覆盖 equals 的实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48171847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com