Annotation Type EqualsAndHashCode
Generates implementations for the
equals and hashCode methods inherited by all objects, based on relevant fields.
Complete documentation is found at the project lombok features page for @EqualsAndHashCode.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic @interfaceDeprecated.Don't use this annotation, ever - Read the documentation.static enumstatic @interfaceIf present, do not include this field in the generatedequalsandhashCodemethods.static @interfaceConfigure the behaviour of how this member is treated in theequalsandhashCodeimplementation; if on a method, include the method's return value as part of calculating hashCode/equality. -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionDetermines how the result of thehashCodemethod will be cached.booleanCall on the superclass's implementations ofequalsandhashCodebefore calculating for the fields in this class.booleanNormally, if getters are available, those are called.String[]Any fields listed here will not be taken into account in the generatedequalsandhashCodeimplementations.String[]If present, explicitly lists the fields that are to be used for identity.booleanOnly include fields and methods explicitly marked with@EqualsAndHashCode.Include.Any annotations listed here are put on the generated parameter ofequalsandcanEqual.
-
Element Details
-
exclude
-
of
String[] ofIf present, explicitly lists the fields that are to be used for identity. Normally, all non-static, non-transient fields are used for identity.Mutually exclusive with
exclude().Will soon be marked
@Deprecated; use the@EqualsAndHashCode.Includeannotation together with@EqualsAndHashCode(onlyExplicitlyIncluded = true).- Returns:
- A list of fields to use (default: all of them).
- Default:
{}
-
callSuper
boolean callSuperCall on the superclass's implementations ofequalsandhashCodebefore calculating for the fields in this class. default: false- Returns:
- Whether to call the superclass's
equalsimplementation as part of the generated equals algorithm.
- Default:
false
-
doNotUseGetters
boolean doNotUseGettersNormally, if getters are available, those are called. To suppress this and let the generated code use the fields directly, set this totrue. default: false- Returns:
- If
true, always use direct field access instead of calling the getter method.
- Default:
false
-
cacheStrategy
EqualsAndHashCode.CacheStrategy cacheStrategyDetermines how the result of thehashCodemethod will be cached. default:EqualsAndHashCode.CacheStrategy.NEVER- Returns:
- The
hashCodecache strategy to be used.
- Default:
NEVER
-
onParam
EqualsAndHashCode.AnyAnnotation[] onParamAny annotations listed here are put on the generated parameter ofequalsandcanEqual. This is useful to add for example aNullableannotation.
The syntax for this feature depends on JDK version (nothing we can do about that; it's to work around javac bugs).
up to JDK7:
@EqualsAndHashCode(onParam=@__({@AnnotationsGoHere}))
from JDK8:
@EqualsAndHashCode(onParam_={@AnnotationsGohere})// note the underscore afteronParam.- Returns:
- List of annotations to apply to the generated parameter in the
equals()method.
- Default:
{}
-
onlyExplicitlyIncluded
boolean onlyExplicitlyIncludedOnly include fields and methods explicitly marked with@EqualsAndHashCode.Include. Normally, all (non-static, non-transient) fields are included by default.- Returns:
- If
true, don't include non-static non-transient fields automatically (default:false).
- Default:
false
-