I want to use a data class in Lombok. Since it has about a dozen fields, I annotated it with @Data
in order to generate all the setters and getter. However there is one special field for which I don't want to the accessors to be implemented.
How does Lombok omit this field?
Omitting Getter or Setter Using AccessLevel. To override the access level, annotate the field or class with an explicit @Setter or @Getter annotation.
You can always manually disable getter/setter generation for any field by using the special AccessLevel. NONE access level. This lets you override the behaviour of a @Getter , @Setter or @Data annotation on a class.
Depends on if the value you are talking about is something you want to let other classes modify - in some cases the answer is yes, in some it is no. If the answer is no then there is no reason to add a setter method and in fact it might harm things.
You can pass an access level to the @Getter
and @Setter
annotations. This is useful to make getters or setters protected or private. It can also be used to override the default.
With @Data
, you have public access to the accessors by default. You can now use the special access level NONE
to completely omit the accessor, like this:
@Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private int mySecret;
According to @Data description you can use:
All generated getters and setters will be public. To override the access level, annotate the field or class with an explicit @Setter and/or @Getter annotation. You can also use this annotation (by combining it with AccessLevel.NONE) to suppress generating a getter and/or setter altogether.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With