註解類型 SuperBuilder


@Target(TYPE) @Retention(SOURCE) public @interface SuperBuilder
SuperBuilder 註解為標註 @SuperBuilder 的類別建立所謂的 'builder' 方面,但在擴充時效果良好。它與 @Builder 相似,只是它僅在類型上合法,可配置性較低,但允許您 extends 其他可 builder 的類別。

層次結構中的所有類別都必須使用 @SuperBuilder 註解。

Lombok 會產生 2 個內部 'builder' 類別,它們擴充父類別的 builder 類別(除非您的類別沒有 extends 子句)。Lombok 也會產生一個名為 builder() 的靜態方法,以及一個接受 builder 類別類型的一個引數的受保護建構子。

TBuilder 類別包含一個方法,對應於註解建構子 / 方法的每個參數(註解類別時為每個欄位),該方法會回傳 builder 本身。builder 也具有一個 build() 方法,該方法會回傳原始類型的已完成實例。

完整文件請見 project lombok 關於 @SuperBuilder 的功能頁面

另請參閱
  • 元素詳細資訊

    • builderMethodName

      String builderMethodName
      回傳
      建立新 builder 實例的方法名稱。預設值:builder。如果為空字串,則抑制產生 builder 方法。
      預設
      "builder"
    • buildMethodName

      String buildMethodName
      回傳
      在 builder 類別中,建立 @Builder 註解類別實例的方法名稱。
      預設
      "build"
    • toBuilder

      boolean toBuilder
      如果為 true,則產生一個實例方法,以取得使用此實例值初始化的 builder。在這種情況下,所有父類別也必須具有 toBuilder=true
      回傳
      是否產生 toBuilder() 方法。
      預設
      false
    • setterPrefix

      String setterPrefix
      要添加到生成器類別中 'set' 方法前面的前綴。預設情況下,產生的方法不包含前綴。例如,如果使用 @SuperBuilder(setterPrefix = "with"),則通常產生為 someField(String someField) 的方法將改為產生為 withSomeField(String someField)。請注意,強烈建議不要使用 "with" 作為 builder setter 方法的前綴,因為 "with" 通常表示不可變的資料結構,而 builder 定義上是可變物件。對於 @Singular 欄位,產生的方法稱為 withNamewithNamesclearNames,而不是預設的 namenamesclearNames。此前綴僅適用於註解類別欄位的 'set' 方法。為了保持一致性,您應該在所有使用 @SuperBuilder 的父類別和子類別上使用相同的前綴。
      回傳
      要添加到產生方法名稱前面的前綴。
      預設
      ""