IIWAB lombok 基础注解之 @Builder - IIWAB

lombok 基础注解之 @Builder

IIWAB 1年前 ⋅ 458 阅读

一、注解介绍

@Builder 注解为类生成相对略微复杂的构建器 API

  1. 它作用于类,将其变成建造者模式
  2. 可以以链的形式调用
  3. 初始化实例对象生成的对象是不可以变的,可以在创建对象的时候进行赋值
  4. 如果需要在原来的基础上修改可以加 set 方法,final 字段可以不需要初始化
  5. 它会生成一个全参的构造函数

@Builder 会生成一个全参构造方法,因此就没有了无参构造方法,但当我们遇到需要无参构造方法时就会发生问题,这个时候手写或者加上 @NoArgsConstructor 都会报错,两种解决方案

一、加上 @AllArgsConstructor

二、使用 @Tolerate 注解

二、@Builder 内部做了什么

  1. 创建一个名为 ThisClassBuilder 的内部静态类,并具有和实体类相同的属性(称为构建器)
  2. 在构建器中:对于目标类中的所有的属性和未初始化的 final 字段,都会在构建器中创建对应属性
  3. 在构建器中:创建一个无参的 default 构造函数
  4. 在构建器中:实体类中的每个参数,都会对应创建类似于 setter 的方法,方法名与该参数名相同。 并且返回值是构建器本身(便于链式调用)
  5. 在构建器中:会创建一个 build 方法,调用 build 方法,就会根据设置的值进行创建实体对象
  6. 在构建器中:会生成一个 toString 方法
  7. 在实体类中:会创建一个 builder 方法,它的目的是用来创建构建器

全部评论: 0

    我有话说: