一、注解介绍
@Builder 注解为类生成相对略微复杂的构建器 API
它作用于类,将其变成建造者模式
可以以链的形式调用
初始化实例对象生成的对象是不可以变的,可以在创建对象的时候进行赋值
如果需要在原来的基础上修改可以加 set 方法,final 字段可以不需要初始化
它会生成一个全参的构造函数
二、属性介绍
@Builder.Default:非 final 的字段可以有默认值
builderMethodName:指定创建内部静态类的方法名,默认值为 builder
buildMethodName:指定创建实体类的方法名,默认值为 build
builderClassName:指定内部静态的类名,默认值为 “”,默认创建的类名为 thisclassBuilder
toBuilder:设置为 true 可以对这个对象进行拷贝生成新的对象,可以再修改,默认为 false
access:设置 builderMethodName 的访问权限修饰符,默认为 public
共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE,其中 MODULE 是 Java 9 的新特性
三、代码实例参考
@Builder(
builderMethodName = "builder", buildMethodName = "build", builderClassName = "",
toBuilder = true, access = AccessLevel.PUBLIC, setterPrefix = ""
)
public class Yifei {
@Builder.Default
private String name = "刘亦菲";
private String sex;
private final Integer age = 18