我有一个继承自其他实体的实体。另一方面,我正在使用 lombok 项目来减少样板代码,所以我放置了 @Data
注释。带有继承的注释 @Data
产生下一个警告:
生成 equals/hashCode 实现但不调用超类,即使此类不扩展 java.lang.Object。如果这是有意的,请将
@EqualsAndHashCode(callSuper=false)
添加到您的类型中。
是否建议添加注释 @EqualsAndHashCode (callSuper = true)
或 @EqualsAndHashCode (callSuper = false)
?如果不添加,它是哪个 callSuper=false
或 callSuper=true
?
原文由 Pau 发布,翻译遵循 CC BY-SA 4.0 许可协议
默认值为
false
。如果您不指定它并忽略警告,这就是您得到的结果。是的,建议在
@Data
注释的类上添加一个@EqualsAndHashCode
注释,这些类扩展对象以外的东西。我无法告诉您是否需要true
或false
,这取决于您的类层次结构,需要逐案检查。但是,对于项目或包,如果它不是 Object 的直接子类,则可以在
lombok.config
中配置以调用超级方法。请参阅有关其工作原理的 配置系统文档,以及
@EqualsEndHashCode
支持的配置密钥的文档。披露:我是一名 lombok 开发人员。