From a24bf3194477a841c905827ef625e19b0fd53b2a Mon Sep 17 00:00:00 2001
From: Reinier Zwitserloot
In practice, @Value
is shorthand for: final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @Getter
, except that explicitly including an implementation of any of the relevant methods simply means that part won't be generated and no warning will be emitted. For example, if you write your own toString
, no error occurs, and lombok will not generate a toString
. Also, any explicit constructor, no matter the arguments list, implies lombok will not generate a constructor. If you do want lombok to generate the all-args constructor, add @AllArgsConstructor
to the class. You can mark any constructor or method with @lombok.experimental.Tolerate
to hide them from lombok.
- It is possible to override the final-by-default and private-by-default behaviour using either an explicit access level on a field, or by using the @NonFinal
or @PackagePrivate
annotations.
- It is possible to override any default behaviour for any of the 'parts' that make up @Value
by explicitly using that annotation.
+ It is possible to override the final-by-default and private-by-default behavior using either an explicit access level on a field, or by using the @NonFinal
or @PackagePrivate
annotations.
+ It is possible to override any default behavior for any of the 'parts' that make up @Value
by explicitly using that annotation.