当前位置: 首页 > 面试题库 >

@Data注释Lombok上的警告equals / hashCode具有继承性

梅耘豪
2023-03-14
问题内容

我有一个从其他继承的实体。另一方面,我正在使用lombok项目来减少样板代码,因此我添加了@Data注释。@Data具有继承的注释会产生下一个警告:

生成equals /
hashCode实现,但不调用超类,即使该类未扩展java.lang.Object。如果这是故意的,请添加@EqualsAndHashCode(callSuper=false)您的类型。

是否建议添加注释@EqualsAndHashCode (callSuper = true)@EqualsAndHashCode (callSuper = false)?如果不加它,哪一个是它 callSuper=false 还是 callSuper=true


问题答案:

该默认值是false。如果您不指定它而忽略警告,那就是您得到的。

是的,建议@EqualsAndHashCode在带@Data注释的类上添加注释,以扩展除Object之外的其他内容。我不能告诉您是否需要truefalse,这取决于您的类层次结构,并且需要逐案检查。

但是,对于项目或程序包,lombok.config如果它不是Object的直接子类,则可以配置为调用super方法。

lombok.equalsAndHashCode.callSuper = call

请参阅配置系统文档以了解其工作方式以及支持的配置密钥的@EqualsEndHashCode文档。

披露:我是lombok开发人员。



 类似资料:
  • 生成equals/hashCode实现,但不调用超类,即使这个类没有扩展java.lang.Object。如果这是有意的,请将添加到您的类型中。 是否建议添加注释或?如果不添加,它是还是?

  • 我有扩展其他抽象类JPA实体。我想使用@data来避免编写setter和getter,但我的equals和hashcode方法存在。 我得到警告,但我认为我不应该: 当我将@equalsandHashCode(callSuper=false)添加到@data中时,我得到:

  • 而且 但这似乎不起作用,因为中没有可用的默认构造函数。我不熟悉龙目岛注释。有什么好的方法可以扩展基类,同时使用lombok注释吗?

  • Java Lombok库:继承的生成器注释问题 创建子类的实例时,父类属性在生成器注释中不可见。 以下失败: 然而,下面的说法是正确的: 似乎这个问题已经存在很长时间了,不知道最新版本是否有任何修正。

  • 本文向大家介绍Java继承的注释,包括了Java继承的注释的使用技巧和注意事项,需要的朋友参考一下 示例 默认情况下,类注释不适用于扩展它们的类型。可以通过将@Inherited注释添加到注释定义中来更改 示例 请考虑以下2个注释: 和 如果这样注释了三个类: 运行此代码 将打印与此类似的结果(取决于注释的包): 请注意,注释只能从类继承,而不能从接口继承。

  • 我试图在Ubuntu 16.04 LTS上使用STS 3.9.4创建一个测试项目,Java8和Lombok 1.16.20。 安装了“龙目1.16.20版”跳舞象形文字。“”通常显示在“关于”选项卡上。 我尝试过的程序: 运行龙目岛。jar并通过GUI进行安装 还有其他解决方法吗?