注解类型 委托


@Target({FIELD,METHOD}) @Retention(SOURCE) public @interface Delegate
放在任何字段上,使 lombok 生成委托方法,将调用转发到该字段。例如
     private @Delegate List<String> foo;
 
例如,将生成一个 boolean add(String) 方法,其中包含:return foo.add(arg);,以及 List 中的所有其他方法。字段类型的所有公共实例方法,以及字段类型的所有超字段的所有公共实例方法都将被委托,除了 Object 中存在的所有方法、canEqual(Object) 方法以及 excludes 属性中列出的类型中出现的任何方法。

完整文档请见 项目 lombok 功能页面 @Delegate

  • 可选元素摘要

    可选元素
    修饰符和类型
    可选元素
    描述
    <?>[]
    此处列出的任何类型(包括超类型)中的每个方法都将不会被委托。
    <?>[]
    通常,字段的类型用作委托类型。
  • 元素详情

    • types

      Class<?>[] types
      通常,字段的类型用作委托类型。但是,要选择不同的类型进行委托,您可以在此处列出一个(或多个)类型。请注意,带有类型参数的类型只能作为字段类型完成。对此的解决方案是创建一个私有内部接口/类,其中扩展了适当的类型,并可能列出了您想要委托的所有方法,然后在此处提供该类。字段实际上不必实现您要委托的类型;此处列出的类型仅用于确定要生成哪些委托方法。注意:Object 中的所有方法以及 canEqual(Object other) 永远不会被委托。
      返回值
      对于这些类型中的每个方法(不在 java.lang.Object 中),生成一个委托方法。
      默认
      {}
    • excludes

      Class<?>[] excludes
      此处列出的任何类型(包括超类型)中的每个方法都将不会被委托。注意:Object 中的所有方法以及 canEqual(Object other) 永远不会被委托。
      返回值
      对于这些类型中的每个方法(不在 java.lang.Object 中),跳过生成委托方法(覆盖 types())。
      默认
      {}