410 Stimmen

Auslassen eines Setters/Getters in Lombok

Ich möchte eine Datenklasse in Lombok verwenden. Da sie etwa ein Dutzend Felder hat, habe ich sie mit @Data um alle Setter und Getter zu erzeugen. Es gibt jedoch ein spezielles Feld, für das ich nicht möchte, dass die Accessoren implementiert werden.

Wie kommt es, dass Lombok dieses Feld ausspart?

720voto

Michael Piefel Punkte 16276

Sie können eine Zugriffsebene an die @Getter y @Setter Anmerkungen. Dies ist nützlich, um Getter oder Setter geschützt oder privat zu machen. Es kann auch verwendet werden, um den Standard zu überschreiben.

Mit @Data haben Sie standardmäßig öffentlichen Zugriff auf die Accessoren. Sie können nun die spezielle Zugriffsebene verwenden NONE um den Accessor komplett wegzulassen, etwa so:

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

57voto

Mark Rotteveel Punkte 90154

Nach Angaben von @Datenbeschreibung können Sie verwenden:

Alle erzeugten Getter und Setter werden öffentlich sein. Zum Überschreiben der Zugriffsebene zu überschreiben, annotieren Sie das Feld oder die Klasse mit einer expliziten @Setter und/oder @Getter-Anmerkung. Sie können diese Annotation auch verwenden (durch Kombination mit AccessLevel.NONE) verwenden, um die Erzeugung eines Getters und/oder Setter gänzlich zu unterdrücken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X