注解类型 EqualsAndHashCode


@Target(TYPE) @Retention(SOURCE) public @interface EqualsAndHashCode
基于相关字段,为所有对象继承的 equalshashCode 方法生成实现。

完整文档请见 @EqualsAndHashCode 的 project lombok 特性页面

  • 嵌套类概要

    嵌套类
    修饰符和类型
    描述
    static @interface 
    已过时。
    永远不要使用此注解 - 阅读文档。
    static enum 
     
    static @interface 
    如果存在,则不要在生成的 equalshashCode 方法中包含此字段。
    static @interface 
    配置此成员在 equalshashCode 实现中的处理方式;如果在方法上,则将方法的返回值作为计算 hashCode/相等性的一部分。
  • 可选元素概要

    可选元素
    修饰符和类型
    可选元素
    描述
    确定 hashCode 方法的结果将如何被缓存。
    boolean
    在为此类中的字段计算之前,调用超类 equalshashCode 方法的实现。
    boolean
    通常,如果 getter 可用,则会调用它们。
    此处列出的任何字段都不会在生成的 equalshashCode 实现中被考虑在内。
    如果存在,则显式列出用于标识的字段。
    boolean
    仅包含显式标记为 @EqualsAndHashCode.Include 的字段和方法。
    此处列出的任何注解都放在 equalscanEqual 的生成参数上。
  • 元素详情

    • exclude

      String[] exclude
      此处列出的任何字段都不会在生成的 equalshashCode 实现中被考虑在内。与 of() 互斥。

      将很快被标记为 @Deprecated;请改用 @EqualsAndHashCode.Exclude 注解。

      返回
      要排除的字段列表。
      默认
      {}
    • of

      String[] of
      如果存在,则显式列出用于标识的字段。通常,所有非静态、非瞬态字段都用于标识。

      exclude() 互斥。

      将很快被标记为 @Deprecated;请将 @EqualsAndHashCode.Include 注解与 @EqualsAndHashCode(onlyExplicitlyIncluded = true) 一起使用。

      返回
      要使用的字段列表(默认:全部)。
      默认
      {}
    • callSuper

      boolean callSuper
      在为此类中的字段计算之前,调用超类 equalshashCode 方法的实现。 默认值:false
      返回
      是否调用超类的 equals 实现作为生成的 equals 算法的一部分。
      默认
      false
    • doNotUseGetters

      boolean doNotUseGetters
      通常,如果 getter 可用,则会调用它们。要禁止这样做并让生成的代码直接使用字段,请将其设置为 true默认值:false
      返回
      如果 true,始终使用直接字段访问而不是调用 getter 方法。
      默认
      false
    • cacheStrategy

      确定 hashCode 方法的结果将如何被缓存。 默认值:EqualsAndHashCode.CacheStrategy.NEVER
      返回
      要使用的 hashCode 缓存策略。
      默认
      NEVER
    • onParam

      此处列出的任何注解都放在 equalscanEqual 的生成参数上。这对于添加例如 Nullable 注解很有用。
      此功能的语法取决于 JDK 版本(我们对此无能为力;这是为了解决 javac 错误)。
      最高至 JDK7
      @EqualsAndHashCode(onParam=@__({@AnnotationsGoHere}))
      从 JDK8 开始
      @EqualsAndHashCode(onParam_={@AnnotationsGohere}) // 请注意 onParam 后的下划线。
      返回
      要应用于 equals() 方法中生成的参数的注解列表。
      默认
      {}
    • onlyExplicitlyIncluded

      boolean onlyExplicitlyIncluded
      仅包含显式标记为 @EqualsAndHashCode.Include 的字段和方法。通常,默认情况下包含所有(非静态、非瞬态)字段。
      返回
      如果 true,则不自动包含非静态非瞬态字段(默认值:false)。
      默认
      false