@Target(value=TYPE) public @interface Immutable
Immutable
an immutable class is generated. The following modifications/additions are done:
equals
, hashCode
and toString
methods are generatedbuild
or the copy
method. Using copy
provides the
possibility to copy an existing instance.build
or copy
throws an IllegalStateException
. By using Optional
an attribute can be defines as optional.
It is not necessary to initialize an optional attribute.List
and Set
are handled. The annotation makes sure that only
immutableList
and Set
instances are returned. It delegates this task to ImmutableList
/
ImmutableSet
Immutable.Include
all the private fields of the included type are copied into the immutable class.
There are a couple of additional annotations which influence the annotation processor, please consult the corresponding
documentation: Immutable.Include
, Immutable.ExcludeFromEqualsHashCode
, Immutable.ExcludeFromToString
, Immutable.Modifiable
.
Immutable.Include
,
Immutable.ExcludeFromEqualsHashCode
,
Immutable.ExcludeFromToString
,
Immutable.Modifiable
Modifier and Type | Optional Element and Description |
---|---|
Class<?>[] |
interfaces
Based on the getters of the specified interfaces fields are generated and the interfaces are implemented.
|
public abstract Class<?>[] interfaces
Immutable.ExcludeFromEqualsHashCode
,
Immutable.ExcludeFromToString
or Immutable.Modifiable
which has the same effect as annotating a field of the immutable class.Copyright © 2018–2020 b+m Informatik AG. All rights reserved.