Java Lombok库:继承的生成器注释问题
@Builder
public class ParentClass {
private final String a;
private final String b;
}
@Builder
public class ChildClass extends ParentClass{
private final String c;
}
创建子类的实例时,父类属性在生成器注释中不可见。
以下失败:
ChildClass.builder().a("testA").b("testB").c("testC").build();
然而,下面的说法是正确的:
ChildClass.builder().c("testC").build();
似乎这个问题已经存在很长时间了,不知道最新版本是否有任何修正。
问题是,当您使用@Builder注释定义ParentClass时,它会创建ParentClass(String)构造函数并删除隐式构造函数。然后甚至不能创建子类请看下面的答案:如何在Lombok中调用超级构造函数
最新的lombok版本1.18.2包括新的实验性的@SuperBuilder
。它就是为了这个目的而添加的:从超类设置字段。
本文向大家介绍Java继承的注释,包括了Java继承的注释的使用技巧和注意事项,需要的朋友参考一下 示例 默认情况下,类注释不适用于扩展它们的类型。可以通过将@Inherited注释添加到注释定义中来更改 示例 请考虑以下2个注释: 和 如果这样注释了三个类: 运行此代码 将打印与此类似的结果(取决于注释的包): 请注意,注释只能从类继承,而不能从接口继承。
如何使用注释在Spring中提供bean继承?在XML配置中,我使用了
问题内容: 我的对象层次结构随着继承树的加深而增加了复杂性。这些都不是抽象的,因此,它们的所有实例都或多或少地达到了目的。 由于参数数量很多,我想使用“构建器模式”来设置属性,而不是对多个构造函数进行编码。由于我需要适应所有排列,因此继承树中的叶类将具有伸缩构造函数。 当我在设计过程中遇到一些问题时,我已经浏览了这里的答案。首先,让我给您一个简单的,简短的示例来说明问题。 现在我们有一些代码可以继
问题内容: 我想将一个Web服务URL请求表示为一个对象,并发现在继承层次结构中可能有很多通用参数。一个请求可以有很多参数,一些是必选参数,而其他是可选参数,我相信Bloch的Builder模式是一个不错的选择,它可以使用流畅的接口模拟命名参数。 具体来说,我正在设计Google Maps网络服务API,该API具有常规的网络服务请求 和是必填参数,也是必填参数。还有一个可选参数。 每个服务都有其
我能以某种方式将一组注释分组到一个抽象类上,并且每个扩展该类的类都自动分配了这些注释吗? 至少以下内容不起作用:
我基于这个答案实现了模式,我有以下asbtract配置: 我有以下具体配置: 这就是我使用它的方式 在X行我得到-找不到符号方法setHeight。我的错误是什么? 编辑 - 我将有一个扩展的诊断配置,必须扩展对话框配置等。我的意思是会有其他子类。