注解类型 ExtensionMethod


@Target(TYPE) @Retention(SOURCE) public @interface ExtensionMethod
扩展方法使您能够“添加”方法到现有类型,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但它们的调用方式就好像它们是扩展类型上的实例方法一样。

完整的文档请见 @ExtensionMethod 的 project lombok 功能页面

之前

 @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,即使方法调用已经是可编译的(这是默认设置),也会使用适用的扩展方法(如果找到)。
  • 元素详情

    • value

      Class<?>[] value
      返回值
      所有静态方法将作为扩展方法公开的类型。
    • suppressBaseMethods

      boolean suppressBaseMethods
      如果 true,即使方法调用已经是可编译的(这是默认设置),也会使用适用的扩展方法(如果找到)。如果 false,则仅当类型本身也未定义方法调用时,才使用扩展方法。
      返回值
      是否覆盖扩展中已存在的方法。
      默认值
      true