2017-05-08 43 views
1

我正在使用新的Builder.Default Lombok 1.16.16版的特性。 我想配置一個類,使得如果該屬性未通過構建器明確設置,或者該構建器將該屬性設置爲null,則該屬性將採用默認值。當屬性被顯式設置爲null時,龍目島設置缺省值

情況1:屬性未設定

MyClass.Builder()建立();

情況2:屬性被設置爲null

MyClass.Builder()myAttribute(空).build();

在這兩種情況下,我想設置一個默認值。背景是,該類將基於數據庫查詢的結果進行構建。

下面是註解的類

@Builder 
 
@NonFinal 
 
public class MyClass { 
 

 
\t @Builder.Default 
 
\t private String myAttribute = "-"; 
 

 
}

有什麼辦法來配置類,使得屬性被設置爲即使明確設置爲null(案例2)的默認值?

回答

0

不,lombok不會幫助你。您將value設置爲null,則此attribute將爲null

這是一個好主意,看看生成的class,所以你可以瞭解lombok如何工作。

我想起了一種解決方法。
lombok使用all-args-constructor創建你的課程BuilderClass

所以,我認爲如果你打包constructor由你自己並添加你的邏輯,通過檢查這個值是否爲null,然後使用默認值。