Lombok-Annotation @Getter für boolesches Feld

Lesezeit: 2 Minuten

Nitesh Kumars Benutzeravatar
Nitesh Kumar

Ich verwende die Java-Lombok-Annotation @Getter um Getter für mein POJO zu generieren. Ich habe ein boolean Feld nach dem Namen isAbc.

Der @Getter Annotation generiert in diesem Fall eine Methode mit dem Namen isAbc(). Sollte es nicht eine Methode mit dem Namen generieren? isIsAbc()?

Benutzer-Avatar von Harald Gliebe
Harald Gliebe

Lesen Sie den Abschnitt „Kleingedrucktes“ auf der Lombok-Seite https://projectlombok.org/features/GetterSetter.html

Bei booleschen Feldern, die mit beginnen und unmittelbar von einem Groß- und Kleinbuchstaben gefolgt werden, wird nichts vorangestellt, um den Getter-Namen zu generieren.

Das Verhalten, das Sie erleben, ist also wie angegeben.

Beachten Sie, dass das Verhalten unterschiedlich ist boolean Und Boolean:

@Getter
private boolean isGood; // => isGood()

@Getter
private boolean good; // => isGood()

@Getter
private Boolean isGood; // => getIsGood()

  • @serghey-bishyr, du solltest deine eigene Antwort schreiben und die bestehende nicht erweitern.

    – Dieter

    6. März 2017 um 9:49 Uhr

  • @dit, meine Antwort wird sich nicht von der bestehenden unterscheiden, nur mit einigen zusätzlichen Anmerkungen.

    – Sergii Bishyr

    6. März 2017 um 9:52

  • Was ist mit Settern in diesen Fällen?

    – Whisky

    4. Januar 2018 um 10:39

  • @whishky Bei Settern wird das Präfix „is“ ignoriert. Dies bedeutet, dass privater boolean isGood; // => setGood()

    – Comiventor

    11. Januar 2018 um 17:20 Uhr


  • @SergiiBishyr Danke für die Verbesserung der Antwort. Das war definitiv der richtige Ansatz.

    – Dominic Cronin

    9. Okt. 2020 um 15:42 Uhr

Benutzeravatar von Kent Munthe Caspersen
Kent Munthe Caspersen

Lombok hat kein Präfix is wenn der Name bereits mit beginnt is gefolgt von einem Großbuchstaben wie in isGood.

Möglicherweise stoßen Sie auf Namen wie canDelete Dadurch wird ein Getter mit dem Namen generiert isCanDelete. Um dies zu vermeiden, können Sie die verwenden fluent Parameter:

@Getter(fluent = true)
private boolean canDelete;

oder (je nach Version):

@Getter
@Accessors(fluent = true)
private boolean canDelete;

In diesem Fall bleibt der Name unverändert, sodass der Getter zum Getter wird canDelete().

Sunnys Benutzeravatar
Sonnig

Ich habe einige Tests mit dem Lombok (1.16.8) durchgeführt und die Schlussfolgerungen sind wie folgt.

private Boolean good;

getter => getGood()              Boolean
setter => setGood(Boolean good)  void 


private boolean good;

getter => isGood()               boolean
setter => setGood(boolean good)  void 


private Boolean isGood;

getter => getIsGood()            Boolean
setter => setIsGood()            void 


private boolean isGood;

getter => isGood()               boolean
setter => setGood(boolean good)  void

  • So zwingen Sie Lombok zur Generierung von isGood für Getter auf nicht-primitiven Typen wie Boolean isGood ?

    – Andreas

    2. Februar um 10:27

1452060cookie-checkLombok-Annotation @Getter für boolesches Feld

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy