註解類型 Delegate


@Target({FIELD,METHOD}) @Retention(SOURCE) public @interface Delegate
放在任何欄位上,使 lombok 產生委派方法,將呼叫轉發到此欄位。範例
     private @Delegate List<String> foo;
 
例如,將會產生一個 boolean add(String) 方法,其包含:return foo.add(arg);,以及 List 中的所有其他方法。欄位類型的所有 public 實例方法,以及欄位類型之所有父類型的所有 public 實例方法都會被委派,但 Object 中的所有方法、canEqual(Object) 方法,以及出現在 excludes 屬性中列出的類型中的任何方法除外。

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

  • 可選元素摘要

    可選元素
    修飾詞和類型
    可選元素
    描述
    類別<?>[]
    此處列出的任何類型(包括父類型)中的每個方法都不會被委派。
    類別<?>[]
    通常欄位的類型會被用作委派類型。
  • 元素詳細資料

    • types

      Class<?>[] types
      通常欄位的類型會被用作委派類型。但是,若要選擇不同的類型來委派,您可以在此處列出一個(或多個)類型。請注意,帶有類型引數的類型只能作為欄位類型完成。一個解決方案是建立一個私有內部介面/類別,並擴展適當的類型,並可能列出所有您想要委派的方法,然後在此處提供該類別。欄位實際上不必實作您要委派的類型;此處列出的類型僅用於確定要產生哪些委派方法。注意:Object 中的所有方法以及 canEqual(Object other) 永遠不會被委派。
      回傳
      對於這些類型中的每個方法(不包括 java.lang.Object 中已有的方法),產生一個委派方法。
      預設
      {}
    • excludes

      Class<?>[] excludes
      此處列出的任何類型(包括父類型)中的每個方法都不會被委派。注意:Object 中的所有方法以及 canEqual(Object other) 永遠不會被委派。
      回傳
      對於這些類型中的每個方法(不包括 java.lang.Object 中已有的方法),跳過產生委派方法(覆蓋 types())。
      預設
      {}