註解類型 ExtensionMethod


@Target(TYPE) @Retention(SOURCE) public @interface ExtensionMethod
擴展方法使您能夠「新增」方法到現有類型,而無需建立新的衍生類型、重新編譯或以其他方式修改原始類型。擴展方法是一種特殊的靜態方法,但它們被調用時,就好像它們是擴展類型上的實例方法一樣。

完整文件請見 Project Lombok 功能頁面關於 @ExtensionMethod 的說明

之前

 @ExtensionMethod(java.util.Arrays.class)
 class Example {
        private void example() {
                long[] values = new long[] { 2, 5, 7, 9 };
                values.copyOf(3).sort();
        }
 }
 
之後
 class Example {
        private void example() {
                long[] values = new long[] { 2, 5, 7, 9 };
                java.util.Arrays.sort(java.util.Arrays.copyOf(values, 3));
        }
 }
 
  • 必要元素摘要

    必要元素
    修飾詞與類型
    必要元素
    描述
    類別<?>[]
     
  • 選用元素摘要

    選用元素
    修飾詞與類型
    選用元素
    描述
    boolean
    true,即使方法呼叫已經可編譯(預設情況),仍會使用適用的擴展方法(如果找到)。
  • 元素細節

    • Class<?>[] value
      傳回
      所有靜態方法將作為擴展方法公開的類型。
    • 停用基礎方法

      boolean suppressBaseMethods
      true,即使方法呼叫已經可編譯(預設情況),仍會使用適用的擴展方法(如果找到)。若 false,則僅當類型本身未定義方法呼叫時,才會使用擴展方法。
      傳回
      是否覆寫已存在的方法。
      預設值
      true