【发布时间】:2021-03-24 14:34:42
【问题描述】:
我想创建一个新的Child 实例,传递Parent 和其他附加参数。
例如,如果我有:
public class Parent {
public String param1;
public String param2;
// many parameters
public String paramN;
}
public class Child extends Parent {
public String subValue;
}
对于 lombok,是否有一个构建器可以让我创建一个 Child 实例,并将 Parent 和缺失值作为参数传递?
如果我能写这样的东西会更容易:
Parent p = Parent.builder()
.param1("a")
.param2("b")
// many parameters
.paramN("b")
.build();
Child c = Child.builder(p).subValue("c").build();
【问题讨论】:
-
你为什么不喜欢一次性创建孩子的选项,比如 Child c = Child.builder()..name("a").value("b").subValue(" c").build();在@SuperBuilder 的帮助下
-
@ShaileshChandra 好吧,在实际情况下,父母确实有很多字段。这样就不容易了……
-
明白了,那么我建议去组合而不是继承,你怎么看,你可以有一个以 parent 类型命名的字段
-
@ShaileshChandra 作品不是我想要的:)
-
好的,但是如果我们谈论 lombok 它只在编译期间生成代码,想想如果 lombok 决定提供这个它将生成什么代码?