lombok的builder设置默认值的问题

学习使用如何在lombok中配置默认值

问题
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@Data
@Builder
public class Demo {

    @Tolerate
    public Demo(){

    }

    private int type = 2;

    private String url;
}

  通过builder模式,如果不设置type,还指望它能够设置2,恐怕要令你失望了。

告警
1
Warning:(95, 30) java: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. if it is not supposed to be settable during building, add @Builder.Constant.

  升级到最新版

1
2
3
4
5
6
  <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.16</version>
      <scope>provided</scope>
    </dependency>

  使用@Builder.Default

1
2
@Builder.Default
private int type = 2;

  这样就ok了。

  doc