1. 注解的核心作用
@EqualsAndHashCode 是 Lombok 框架提供的注解,它的核心作用是自动为你的 Java 类生成 equals() 和 hashCode() 方法。而 callSuper = true 是这个注解的关键参数,用来控制生成方法时是否考虑父类的属性。
先理解基础概念
- 默认行为(callSuper = false):如果不写
callSuper,默认值是false,此时 Lombok 生成的equals()和hashCode()只会考虑当前类的属性,完全忽略父类的属性。 - callSuper = true:设置为
true后,生成的方法会同时考虑当前类的属性 + 父类的属性(准确来说是调用父类的equals()和hashCode()方法)。
2. 代码示例对比
为了让你更直观理解,我用两个简单的类来演示:
父类
public class Parent {
private String parentField;
// 手动写构造器(方便测试)
public Parent(String parentField) {
this.parentField = parentField;
}
}