帶有註解的註解類型


@Target({FIELD,TYPE}) @Retention(SOURCE) public @interface With
放在任何欄位上,讓 lombok 建構一個 'with' - 一個 withX 方法,該方法會產生此物件的副本(除了 1 個欄位會獲得新值)。

完整文件請見 @With 的 project lombok 功能頁面

範例

     private @With final int foo;
 
將產生
     public SELF_TYPE withFoo(int foo) {
         return this.foo == foo ? this : new SELF_TYPE(otherField1, otherField2, foo);
     }
 

此註解也可以應用於類別,在這種情況下,它就像所有尚未具有 With 註解的非靜態欄位都具有該註解一樣。

  • 巢狀類別摘要

    巢狀類別
    修飾詞和類型
    類別
    說明
    static @interface 
    已過時。
    永遠不要使用此註解 - 請閱讀文件。
  • 可選元素摘要

    可選元素
    修飾詞和類型
    可選元素
    說明
    此處列出的任何註解都會放在產生的方法上。
    此處列出的任何註解都會放在產生的方法參數上。
    如果您希望您的 with 方法是非公開的,您可以在此處指定替代的訪問層級。
  • 元素詳細資料

    • value

      如果您希望您的 with 方法是非公開的,您可以在此處指定替代的訪問層級。
      回傳
      方法將使用此訪問修飾詞產生。
      預設值
      PUBLIC
    • onMethod

      With.AnyAnnotation[] onMethod
      此處列出的任何註解都會放在產生的方法上。此功能的語法取決於 JDK 版本(我們對此無能為力;這是為了繞過 javac 的錯誤)。
      JDK7 之前
      @With(onMethod=@__({@AnnotationsGoHere}))
      從 JDK8 開始
      @With(onMethod_={@AnnotationsGohere}) // 請注意 onMethod 後面的底線。
      回傳
      要應用於產生方法的註解列表。
      預設值
      {}
    • onParam

      此處列出的任何註解都會放在產生方法的方法參數上。此功能的語法取決於 JDK 版本(我們對此無能為力;這是為了繞過 javac 的錯誤)。
      JDK7 之前
      @With(onParam=@__({@AnnotationsGoHere}))
      從 JDK8 開始
      @With(onParam_={@AnnotationsGohere}) // 請注意 onParam 後面的底線。
      回傳
      要應用於方法中產生參數的註解列表。
      預設值
      {}