Lombok @getter și @setter

Puteți adăuga adnotările @Getter și / sau @Setter în orice câmp, astfel încât lombok să genereze automat metode pentru obținerea și setarea valorii.
Metoda implicită de obținere a valorii returnează doar valoarea câmpului și are un getFoo nume, dacă un câmp este numit foo (sau isFoo, în cazul în care un câmp Boolean). Metoda implicită pentru setarea noua valoare are un setFoo nume, în cazul în care un câmp este numit foo, se întoarce nule, și are un parametru de același tip ca și câmpul în sine. Această metodă stabilește pur și simplu valoarea în câmp.







Metodele generate pentru obținerea / setarea unei valori au un modificator de acces public, cu excepția cazului în care specificați în mod explicit AccessLevel, așa cum se arată în exemplul de mai jos. Niveluri de acces disponibile: PUBLIC, PROTECTED, PACKAGE and PRIVATE.

De asemenea, puteți specifica adnotarea @Getter și / sau @Setter pentru clasă. În acest caz, va fi același lucru ca și când ați specificat aceste adnotări pentru toate câmpurile de clasă non-statică.

De asemenea, puteți dezactiva manual generarea metodei get / set pentru orice câmp utilizând AccessLevel.NONE. Acest lucru vă permite să ignorați comportamentul adnotărilor @Getter, @Setter sau @Data pentru clasă.

Pentru a adăuga adnotări la metoda generată, utilizați onMethod = @__ ( <@AnnotationsHere> ). Pentru a adăuga adnotări numai la parametrul metodei de setare a valorii generate, utilizați onParam = @__ ( <@AnnotationsHere> ). Dar fii atent! Aceasta este o posibilitate experimentală.

NOU în v1.12.0: câmpurile y Javadoc sunt acum copiate getterelor generate și valorile setteri. De obicei, întregul text este copiat, @return se mută la o metodă de obținere a valorilor și muta șir de caractere în metoda de setare valoare @param. Mutarea înseamnă că sunt eliminate din câmpul JavaDoc. De asemenea, este posibil să se definească un text unic pentru metoda de obținere a valorii și metoda de stabilire a valorii. Pentru aceasta, creați o secțiune GETTER și / sau SETTER. Secțiunea - este o linie în Javadoc, care cuprinde două sau mai multe minus (cratima), atunci textul «getter» sau «setter», apoi două sau mai multe minus (cratima), și orice altceva utilizați la secțiunea linii.Esli, The @return, și @ param separate mai mult (@return sau @param muta în interiorul secțiunii).







Cu Lombok

Lombok va marca orice utilizare a @Getter ca avertisment sau eroare dacă este configurată.

Pentru a genera nume de metode, primul caracter al câmpului, dacă este cazul, este convertit în majuscule, altfel rămâne neschimbat. Apoi folosiți / set / sunt prefixe.

Nu se generează nici o metodă dacă există deja o metodă cu același nume (insensibilă pentru litere mici) și același număr de parametri. De exemplu, metoda getFoo () nu va fi generată dacă metoda getFoo (String ... x) există deja, chiar dacă este posibil din punct de vedere tehnic. Acesta este un avertisment, pentru a preveni neînțelegerile. Dacă generarea metodei este omisă din acest motiv, atunci apare un avertisment. Puteți marca orice metodă @ lombok.experimental.Tolerate pentru a le ascunde.

În cazul în care câmpurile logice începând cu este urmată de majuscule, prefixul nu este utilizat pentru a genera numele metodei de extragere a valorii.

Orice variații de tip logic nu vor avea prefixul în loc de a obține. De exemplu, tipul de returnare java.lang.Boolean va avea prefixul de primire, nu este.

Orice adnotare numit @NonNull (case-insensitive) pentru un câmp este interpretat în faptul că domeniul nu poate conține nul. Din acest motiv, aceste adnotări se adaugă cec explicit pentru nul în metodele generate seta valoarea. De asemenea, aceste adnotări (precum și orice adnotări sau numit @Nullable @CheckForNull) sunt copiate în metoda de setare valoarea parametrului și la o metodă pentru producerea de valoare.

Puteți adăuga adnotarea @Getter sau @Setter în clasă. Aceasta este echivalentă cu adăugarea acestor adnotări la toate câmpurile de clasă non-statică. Notele @ Getter / @ Setter pentru câmpuri au prioritate față de adnotările clasei.

Utilizarea AccessLevel.NONE nu generează nimic. Este utilă numai în combinație cu @Data pentru clasă sau pentru adnotările @Getter sau @Setter setate pentru clasă.

@Getter poate fi, de asemenea, utilizat în enumerări. @Setter - nu poate, dar nu din motive tehnice. Metodele de stabilire a valorilor pentru enumerări sunt foarte extreme și o idee proastă.

Mai multe intrări din această categorie:







Trimiteți-le prietenilor: