Package groovy.transform
Annotation Type ImmutableOptions
@Documented @Retention(SOURCE) @Target(TYPE) public @interface ImmutableOptions
Class annotation used to assist in the creation of immutable classes.
Defines any known immutable properties (or fields) or known immutable classes.
- Since:
- 2.5.0
- See Also:
Immutable
,ImmutablePropertyHandler
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description Class[]
knownImmutableClasses
Allows you to provide@Immutable
with a list of classes which are deemed immutable.String[]
knownImmutables
Allows you to provide@Immutable
with a list of property names which are deemed immutable.
-
Element Details
-
knownImmutableClasses
Class[] knownImmutableClassesAllows you to provide@Immutable
with a list of classes which are deemed immutable. By supplying a class in this list, you are vouching for its immutability and@Immutable
will do no further checks. Example:import groovy.transform.*
@Immutable
(knownImmutableClasses = [Address]) class Person { String first, last Address address }@TupleConstructor
class Address { final String street }- Default:
- {}
-
knownImmutables
String[] knownImmutablesAllows you to provide@Immutable
with a list of property names which are deemed immutable. By supplying a property's name in this list, you are vouching for its immutability and@Immutable
will do no further checks. Example:@groovy.transform.Immutable
(knownImmutables = ['address']) class Person { String first, last Address address } ...- Default:
- {}
-