Appearance
lombok相关
EqualsAndHashCode
EqualsAndHashCode
EqualsAndHashCode 是 Lombok 提供的一个注解,用于自动生成 Java 类的 equals() 和 hashCode() 方法。它的主要作用是简化代码编写,确保对象的比较和哈希计算逻辑一致。
默认情况下,@EqualsAndHashCode 会基于类中所有非静态、非瞬态的字段生成 equals() 和 hashCode() 方法。它还提供了一些参数来定制生成逻辑,例如:
java
@EqualsAndHashCode(exclude = {"field1"}) // 排除某些字段
@EqualsAndHashCode(of = {"field2"}) // 仅使用指定字段继承关系中的问题
在继承结构中,默认情况下,@EqualsAndHashCode 只会比较当前类的字段,而不会调用父类的 equals() 和 hashCode() 方法。这可能导致对象比较逻辑不完整。例如:
java
@Getter
@Setter
@EqualsAndHashCode(callSuper = false) // 默认值
public class SubClass extends SuperClass {
private String field;
}
@Getter
@Setter
public class SuperClass {
private int id;
}