最全的 lombok 注解详情(随着版本不定时更新),lombok 基础注解之 @Builder
一、注解介绍
表示变量从什么地方获取值,只有当 toBuilder = true 时才生效
二、属性介绍
- field:表示字段赋值时从某个字段上取值,对应的字段必须存在
- method:表示字段赋值时从某个方法上取值,对应的方法必须存在
- isStatic:表示 method 是否静态
三、实战演练
@Builder(toBuilder = true)
public class 吴宣仪 {
private String name;
@Builder.ObtainVia(field = "name") // 对应变量 name,变量类型必须一样
private String identity;
public static void main(String[] args) {
吴宣仪 xunYi = 吴宣仪.builder().name("吴宣仪").build();
xunYi = xunYi.toBuilder().build(); // 此时 identity 为 name 变量值
System.out.println(xuanYi);
}
}
@Builder(toBuilder = true)
public class Rita {
private String name;
@Builder.ObtainVia(method = "init") // 对应方法 init,方法返回类型和字段类型必须统一
private String identity;
private String init() {
return "Rita";
}
public static void main(String[] args) {
Rita rita = Rita.builder().name("Rita").build();
rita = rita.toBuilder().build(); // 此时变量 identity 从 init 方法中取值
System.out.println(rita);
}
}