【发布时间】:2016-06-22 12:55:11
【问题描述】:
我有一个要使用 Lombok.Builder 的类,我需要对一些参数进行预处理。像这样的:
@Builder
public class Foo {
public String val1;
public int val2;
public List<String> listValues;
public void init(){
// do some checks with the values.
}
}
通常我只会在 NoArg 构造函数上调用init(),但使用生成的构建器我无法这样做。有没有办法让生成的构建器调用这个init?例如build() 会生成如下代码:
public Foo build() {
Foo foo = Foo(params....)
foo.init();
return foo;
}
我知道我可以手动编写 all args 构造函数,Builder 将通过它调用它,我可以在那里调用 init。
但这是一个次优的解决方案,因为我的班级可能每隔一段时间就会添加新字段,这意味着也要更改构造函数。
【问题讨论】: