学习笔记lombok的@Builder注解

Posted 棉花糖灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记lombok的@Builder注解相关的知识,希望对你有一定的参考价值。

首先需要了解下Builder模式:

定义一个User类:

public class User {

  private String firstName;
  private String lastName;

  User(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public static Builder builder() {
      return new Builder();
  }

  public static class Builder {

    String firstName;
    String lastName;

    Builder firstName(String value) {
        this.firstName = value;
        return this;
    }

    Builder lastName(String value) {
        this.lastName = value;
        return this;
    }

    public User build() {
        return new User(firstName, lastName);
    }
  }
}

则可以通过链式调用的方式为User的属性赋值:

User user = User.builder()
      .firstName("san")
      .lastName("zhang")
      .build();

之所以能够链式调用是因为User.Builder类中的firstName()和lastName()方法返回的都是Builder对象。

而@Builder注解的使用可以大大简化代码:

@Builder
public class User {
    private String firstName;
   private String lastName;
}

在使用时和之前一样:

User user = User.Build()
      .firstName("san")
      .lastName("zhang")
      .build();

以上是关于学习笔记lombok的@Builder注解的主要内容,如果未能解决你的问题,请参考以下文章

使用Lombok @Builder注解导致默认值无效

idea怎么看lombok注解自动生成的代码?

lombok中的@Builder.Default注解

Lombok中的@Builder注解的使用

lombok @Builder注解

lombok @Builder 注解的用法