警告 equals/hashCode on @Data annotation lombok with inheritance

新手上路,请多包涵

我有一个继承自其他实体的实体。另一方面,我正在使用 lombok 项目来减少样板代码,所以我放置了 @Data 注释。带有继承的注释 @Data 产生下一个警告:

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

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

原文由 Pau 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 827
2 个回答

默认值为 false 。如果您不指定它并忽略警告,这就是您得到的结果。

是的,建议在 @Data 注释的类上添加一个 @EqualsAndHashCode 注释,这些类扩展对象以外的东西。我无法告诉您是否需要 truefalse ,这取决于您的类层次结构,需要逐案检查。

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

 lombok.equalsAndHashCode.callSuper = call

请参阅有关其工作原理的 配置系统文档,以及 @EqualsEndHashCode 支持的配置密钥的文档

披露:我是一名 lombok 开发人员。

原文由 Roel Spilker 发布,翻译遵循 CC BY-SA 4.0 许可协议

@EqualsAndHashCode(callSuper=true) 应该解决警告。

原文由 noscreenname 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题