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具有常规的网络服务请求 和是必填参数,也是必填参数。还有一个可选参数。 每个服务都有其
我能以某种方式将一组注释分组到一个抽象类上,并且每个扩展该类的类都自动分配了这些注释吗? 至少以下内容不起作用:
问题内容: 使用基于注释的配置(等)是否可以实现相同的bean继承? http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework- reference/htmlsingle/#beans-child-bean- definitions 问题答案: java config中没有抽象bean的概念,因为Java语言已经