From 52582dc10ea1b5ea4a1dbb71831a442056354990 Mon Sep 17 00:00:00 2001
From: Reinier Zwitserloot @java.beans.ConstructorProperties annotation is never generated for a constructor with no arguments. This also explains why @NoArgsConstructor
lacks the suppressConstructorProperties annotation method. The @ConstructorProperties annotation is also omitted for private constructors. The
generated static factory methods also do not get @ConstructorProperties, as this annotation can only be added to real constructors.
+
+ @XArgsConstructor can also be used on an enum definition. The generated constructor will always be
+ private, because non-private constructors aren't legal in enums. You don't have to specify AccessLevel.PRIVATE.
Using the AccessLevel.NONE access level simply generates nothing. It's useful only in combination with
@Data or a class-wide @Getter or @Setter.
+
+ @Getter can also be used on enums. @Setter can't, not for a technical reason, but
+ for a pragmatic one: Setters on enums are an extremely bad idea.
If a getter exists for a field to be included, it is called instead of using a direct field reference. This behaviour can be suppressed:
@ToString(doNotUseGetters = true)
+
+ @ToString can also be used on an enum definition.