不灭的焱

革命尚未成功,同志仍须努力 下载Java

作者:AlbertWen  添加时间:2026-02-25 20:10:54  修改时间:2026-02-25 20:10:54  分类:08.Java基础  编辑

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;
    }
}