web-dev-qa-db-fra.com

Omettre un poseur / accesseur à Lombok

Je veux utiliser une classe de données à Lombok. Puisqu'il a environ une douzaine de champs, je l'ai annoté avec @Data afin de générer tous les setters et getter. Cependant, il existe un domaine spécial pour lequel je ne souhaite pas que les accesseurs soient implémentés.

Comment Lombok omet-il ce champ?

175
DerMike

Vous pouvez passer un niveau d'accès à la @Getter et @Setter annotations. Ceci est utile pour rendre les getters ou setters protégés ou privés. Il peut également être utilisé pour remplacer la valeur par défaut.

Avec @Data, vous avez un accès public aux accesseurs par défaut. Vous pouvez maintenant utiliser le niveau d'accès spécial NONE pour omettre complètement l'accesseur, comme ceci:

@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
316
Michael Piefel

Selon description @ Data vous pouvez utiliser:

Tous les getters et les setters générés seront publics. Pour remplacer le niveau d'accès, annotez le champ ou la classe avec une annotation @Setter et/ou @Getter explicite. Vous pouvez également utiliser cette annotation (en la combinant avec AccessLevel.NONE) pour supprimer la génération d’un getter et/ou d’un setter.

35
Mark Rotteveel