Lombok @Builder
对 Lombok 生成的构造器部分重写,实现变量设置默认值,以及变量非空校验:
@Getter
@Builder(builderClassName = "OverwriteBuilder")
public TestPojo {
private String phoneNumber;
@Builder.Default
private Integer amount = 0;
private String name;
public static class OverwriteBuilder {
public OverwriteBuilder amount(Integer amount) {
this.amount$value = amount;
this.amount$set = amout != null;
return this;
}
public TestPojo build() {
if (phoneNumber.isEmpty()) {
throw new RuntimeException("Invalid phone number");
}
return new TestPojo(phoneNumber, amount$value, name);
}
}
}