我有一个从其他继承的实体。另一方面,我正在使用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之外的其他内容。我不能告诉您是否需要true
或false
,这取决于您的类层次结构,并且需要逐案检查。
但是,对于项目或程序包,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进行安装 还有其他解决方法吗?