问题描述
使用Lombok构建Phone对象。如何跳过使用Builder模式设置属性说“名称”的情况,如果出于某种原因它将为空
protected Phone createPhone(String number,String name) {
return Phone.builder()
.number(number)
.name(name)
.type(PhoneType.MOBILE)
.build();
}
解决方法
可以在Lombok中“替代”构建器方法。例如,您可以使用这种方式(简化为Phone
):
@Builder
@Getter @Setter
public class Phone {
private String number;
private String name;
public static class PhoneBuilder {
// Lombok does not generate name "setter" but uses this instead
public PhoneBuilder name(String name) {
if (null == name) {
// throw or ignore or whatever
throw new NullPointerException("Name NULL");
}
this.name = name;
return this;
}
}
}