前面文章中已经详细介绍了Lombok中@Builder注解的使用,以及代码演示。本文进一步分析@Builder注解的参数配置。
在 IntelliJ IDEA 中查看 Lombok 生成的代码
一、@Builder 注解源码
下面我们再来详细看看@Builder这个注解类的详细实现:
// 指定实体类中创建 Builder 的方法的名称,默认为: builder
String builderMethodName() default "builder";
// 指定 Builder 中用来构建实体类的方法的名称,默认为:build
String buildMethodName() default "build";
// 指定创建的建造者类的名称,默认为:实体类名+Builder
String builderClassName() default "";
// 使用toBuilder可以实现以一个实例为基础继续创建一个对象。也就是重用原来对象的值
boolean toBuilder() default false;
二、使用@Builder 注解参数
builderMethodName : 创建构建器实例的方法名称
buildMethodName:构建器类中创建构造器实例的方法名称
builderClassName:构造器类名
toBuilder:生成toBuilder方法
下面这段示例代码,使用了上述@Builder 注解参数:
import lombok.Builder;
import lombok.ToString;
@Builder(builderClassName = "Builder",
buildMethodName = "create",
builderMethodName = "creator",
toBuilder = true
)
@ToString
public class User {
private Integer id;
private String name;
private String address;
public static void main(String[] args) {
User user = User.creator()
.id(100)
.name("rickie")
.address("Shanghai")
.create();
System.out.println(user);
User user2 = new User(102, "Jack", "上海");
user2 = user2.toBuilder()
.name("马老师")
.create();
System.out.println(user2);
}
}
通过IDEA中的结构(Structure)视图,可以看到如下变化,如图所示:
同时,在使用构建器时,也需要更改代码,如图所示:
启动应用,输出结果如下所示:
User(id=100, name=rickie, address=Shanghai)
User(id=102, name=马老师, address=上海)