Package lombok
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
Modifier and TypeClassDescriptionstatic @interface
Deprecated.Don't use this annotation, ever - Read the documentation.static enum
static @interface
If present, do not include this field in the generatedequals
andhashCode
methods.static @interface
Configure the behaviour of how this member is treated in theequals
andhashCode
implementation; if on a method, include the method's return value as part of calculating hashCode/equality. -
Optional Element Summary
Modifier and TypeOptional ElementDescriptionDetermines how the result of thehashCode
method will be cached.boolean
Call on the superclass's implementations ofequals
andhashCode
before calculating for the fields in this class.boolean
Normally, if getters are available, those are called.String[]
Any fields listed here will not be taken into account in the generatedequals
andhashCode
implementations.String[]
If present, explicitly lists the fields that are to be used for identity.boolean
Only include fields and methods explicitly marked with@EqualsAndHashCode.Include
.Any annotations listed here are put on the generated parameter ofequals
andcanEqual
.
-
Element Details
-
exclude
String[] excludeAny fields listed here will not be taken into account in the generatedequals
andhashCode
implementations. Mutually exclusive withof()
.Will soon be marked
@Deprecated
; use the@EqualsAndHashCode.Exclude
annotation instead.- Returns:
- A list of fields to exclude.
- Default:
{}
-
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.Include
annotation 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 ofequals
andhashCode
before calculating for the fields in this class. default: false- Returns:
- Whether to call the superclass's
equals
implementation 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 thehashCode
method will be cached. default:EqualsAndHashCode.CacheStrategy.NEVER
- Returns:
- The
hashCode
cache strategy to be used.
- Default:
NEVER
-
onParam
EqualsAndHashCode.AnyAnnotation[] onParamAny annotations listed here are put on the generated parameter ofequals
andcanEqual
. This is useful to add for example aNullable
annotation.
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
-