当前位置: 首页 > 知识库问答 >
问题:

带有lombok注释的继承获取错误

仰雅昶
2023-03-14
@Value
@Builder
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Parent {
    @Nonnull
    @JsonProperty("personId")
    private final String personId;

    @JsonProperty("personTag")
    private final String personTag;
    ...
}

而且

@Value
@Builder
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Child extends Parent {
    @Nonnull
    @JsonProperty("childId")
    private final String childId;
    ...
}

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

共有1个答案

朱阳曜
2023-03-14

详细信息:@value注释使类成为最终的,因此您不能从它继承。实验性的@nonfinal注释应该可以防止这种情况。

import lombok.Value;
import lombok.experimental.NonFinal;

@Value
@NonFinal
public class Parent {

参考:https://projectlombok.org/features/value

注意:由于性能原因(如果有问题),最终(值)对象可以(理论上)超快。优化器可以将它们分配到堆栈内存中,或者循环重用相同的堆栈块,因此没有GC开销。

 类似资料:
  • 问题内容: 使用基于注释的配置(等)是否可以实现相同的bean继承? http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework- reference/htmlsingle/#beans-child-bean- definitions 问题答案: java config中没有抽象bean的概念,因为Java语言已经

  • 使用基于注释的配置(等)是否可以实现相同的bean继承? http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#beans-child-bean-definitions

  • 问题内容: 我有一个从其他继承的实体。另一方面,我正在使用lombok项目来减少样板代码,因此我添加了注释。具有继承的注释会产生下一个警告: 生成equals / hashCode实现,但不调用超类,即使该类未扩展java.lang.Object。如果这是故意的,请添加您的类型。 是否建议添加注释或?如果不加它,哪一个是它 还是 ? 问题答案: 该默认值是。如果您不指定它而忽略警告,那就是您得到的

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

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

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