You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中Lombok注解继承问题咨询:子类未继承父类注解功能

Lombok注解在继承场景下的生效规则与解决方案

首先明确:Lombok的@Data、@AllArgsConstructor、@NoArgsConstructor等核心注解不具备继承性,ChatGPT的说法是错误的。

原因说明

Lombok是在编译阶段通过注解处理器生成字节码,这些注解本身没有被Java的@Inherited元注解标记,因此子类不会继承父类的Lombok注解功能。父类通过Lombok生成的getter/setter、构造方法等属于父类成员,子类能继承这些方法,但Lombok不会因为父类加了注解就自动为子类自身的属性生成对应的方法。

解决方案

  • 直接在子类添加@Data注解:这是最简便的方式,Lombok会为子类自身的属性生成getter/setter、equals、hashCode等方法,同时子类会继承父类已生成的所有方法。注意:父类的全参/无参构造不会自动被子类继承,若子类需要对应构造方法,需单独添加@AllArgsConstructor或@NoArgsConstructor。
  • 子类单独使用@Getter+@Setter:如果不需要@Data附带的equals、hashCode等方法,仅需子类属性的访问器,可单独添加这两个注解。

代码示例

父类定义

@Data
@AllArgsConstructor
@NoArgsConstructor
public abstract class AbstractResponse {
    private String code;
    private String message;
}

子类正确写法(使用@Data)

@Data
public class QuoteResponse extends AbstractResponse {
    private String quoteContent;
    private String author;
}

子类精简写法(仅用@Getter@Setter)

@Getter
@Setter
public class QuoteResponse extends AbstractResponse {
    private String quoteContent;
    private String author;
}

内容的提问来源于stack exchange,提问作者learningProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:53:13