Lombok - @Builder導致初始化字段無效解決辦法

當用@Builder註解時,類裏面的初始化字段就無效,比如下面類中的totalAmt和lineNum字段就會置爲null。

@Builder
public class FileExport {
    private String charset;
    private String[] fields;
    private String amtField;
    private BigDecimal totalAmt=BigDecimal.ZERO;
    private AtomicLong lineNum=new AtomicLong();
    private String delimiter;
    private PrintWriter writer;
}

對於這種情況,可以在需要保留默認值的字段上加上@Builder.Default註解解決。

@Builder
public class FileExport {
    private String charset;
    private String[] fields;
    private String amtField;

    @Builder.Default
    private BigDecimal totalAmt=BigDecimal.ZERO;

    @Builder.Default
    private AtomicLong lineNum=new AtomicLong();
    private String delimiter;
    private PrintWriter writer;
}

Tip:idea的lombok插件記得升級到最新的,否則不支持@Builder.Default。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章