警告等于/哈希具有继承@Data注释龙目岛的代码

2022-08-31 08:21:29

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

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

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


答案 1

缺省值为 。如果您不指定它并忽略警告,那就是您得到的那个。false

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

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

lombok.equalsAndHashCode.callSuper = call

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

披露:我是龙目岛开发者。


答案 2

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


推荐