lombok 警告没有注入父类的字段

Generating equals/hashCode implementation but without a call to superclass

本文主要解决lombok 警告,没有注入父类的字段的解决方法。

Generating equals/hashCode implementation but without a call to superclass
1、lombok 警告,没有注入父类的字段

当我们给一个继承了父类的子类上使用@Data @ToString @EqualsAndHashCode 注解时,IDE 会警告

    Generating equals/hashCode implementation but without a call to superclass

意思是,该注解在实现 ToString EqualsAndHashCode 方法时,不会考虑父类的属性,通过反编译的源码也是可以看到他是没有对父类的字段进行比较的
2、解决方式一:直接在子类上声明 @EqualsAndHashCode(callSuper = true)
3、解决方式二[推荐]:在项目的src/main/java根目录下创建lombok配置文件

    请注意,该方式有版本要求,最低为lombok 1.14

如果是IDEA ,创建该配置文件会被IDEA 以一个黄色的小配置图标进行显示

配置文件(lombok.config)的配置内容如下

config.stopBubbling=true
lombok.equalsAndHashCode.callSuper=call

1、config.stopBubbling=true

该配置声明这个配置文件是一个根配置文件,他会从该配置文件所在的目录开始扫描
2、lombok.equalsAndHashCode.callSuper=call

全局配置 equalsAndHashCode 的 callSuper 属性为true,这样就不用每个类都要去写了
3、lombok 配置的分层

lombok 配置文件支持分层,在根目录配置的的配置文件对全局生效,如果某个子包中也有配置文件,则子包的类优先以子包中的配置为准

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Lombok是一个用于简化Java开发的工具库,而@Data是Lombok中的一个注解,被用于自动生成类的getter、setter、equals、hashCode和toString等方法。 使用@Data注解可以避免手动编写这些繁琐的方法,提高开发效率。当我们在类上添加@Data注解后,Lombok会自动为该类生成getter和setter方法,并实现equals、hashCode和toString方法。 对于父类而言,如果我们在子类上使用@Data注解,则只会自动为子类生成对应的getter和setter方法,并没有实现equals、hashCode和toString方法。 若希望父类也能自动实现这些方法,我们需要在父类上同样添加@Data注解。这样一来,父类子类都会自动实现getter、setter、equals、hashCode和toString等方法,减少了代码冗余,使代码更加简洁易读。 总之,使用Lombok的@Data注解可以消除我们在编写Java类时重复编写getter、setter、equals、hashCode和toString等方法的工作,提高了开发效率,使代码更加简洁、易读。无论是在父类还是子类上使用@Data注解,都能自动生成相应的方法,并减少了代码冗余。 ### 回答2: Lombok是一个开源的Java库,它通过使用注解来简化Java代码的编写。其中,@Data注解是Lombok中的一个注解,用于自动生成类的所有必要方法,如构造方法、getter和setter方法、equals和hashCode方法等。 在父类中使用@Data注解,将会自动为父类生成以下方法: 1. 无参构造方法:该方法用于创建一个空的父类对象。 2. 全参构造方法:该方法用于创建一个包含所有属性值的父类对象。 3. getter和setter方法:这些方法分别用于获取和设置父类中的属性值。 4. equals方法:该方法用于判断两个父类对象的属性值是否相等。 5. hashCode方法:该方法用于获取父类对象的哈希码值。 6. toString方法:该方法用于返回父类对象的字符串表示。 通过在父类中使用@Data注解,我们可以省去手动编写以上这些方法的工作,实现了代码的简洁性和可读性。同时,Lombok还可以通过其他注解用于定制生成的方法,如@RequiredArgsConstructor注解用于生成只含有必选属性的构造方法,@EqualsAndHashCode注解用于生成自定义的equals和hashCode方法等。 总之,使用Lombok的@Data注解可以简化父类的代码编写,提高开发效率,让我们更专注于业务逻辑的实现。 ### 回答3: lombok是一个用于简化Java代码的开源框架,主要用于减少冗余的getter和setter方法的编写,提高代码的可读性和简洁性。其中@data注解是lombok提供的一个注解,用于自动生成类的所有基本方法,包括getter、setter、toString、equals和hashCode等。 在父类中使用lombok的@data注解,可以简化代码的编写,减少了重复的方法定义。当我们在父类中添加了@data注解后,lombok会根据类中的成员变量自动为我们生成对应的getter和setter方法。同时,它还会自动生成toString、equals和hashCode等方法,这些方法对于类的实例在打印输出、比较和哈希计算时非常有用。 使用lombok的@data注解还可以提高代码的可读性和维护性。在代码中,我们通常需要编写大量的getter和setter方法,这些方法的编写比较繁琐且容易出错。而使用lombok的@data注解后,我们只需要在类上添加该注解,就可以自动为类生成所有的方法,大大减少了代码量,使代码更加简洁和易读。 总而言之,lombok的@data注解在父类中的使用可以极大地简化代码的编写,减少了冗余的方法定义和重复劳动。它为我们自动生成了所有基本方法,提高了代码的可读性和维护性。因此,在日常的Java开发中,可以考虑使用lombok的@data注解来简化父类的编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个高效工作的家伙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值