Využívanie nástroja Lombok @Getter pre Boolean Fields
1. Úvod
Project Lombok je populárna knižnica na znižovanie štandardných Java.
V tomto rýchlom výučbe sa pozrieme na to, ako má Lombok @Získajte anotácia pracuje na boolovských poliach, aby odstránila potrebu vytvárať príslušné metódy getra.
2. Závislosť od Maven
Začnime tým, že k nášmu projektu pridáme Project Lombok pom.xml:
org.projectlombok lombok 1.18.10
3. Používanie @Getter na a boolovský Lúka
Povedzme, že chceme, aby Lombok vygeneroval metódu prístupu pre naše súkromné booleovské pole.
Toto pole môžeme anotovať @Získajte:
@Získajte súkromný booleovský beh;
A Lombok použije svoj anotačný procesor na vygenerovanie beží() metóda v triede.
A teraz sa na to môžeme odvolať, aj keď sme metódu sami nenapísali:
@Test public void whenBasicBooleanField_thenMethodNamePrefixedWithIsFollowedByFieldName () {LombokExamples lombokExamples = new LombokExamples (); assertFalse (lombokExamples.isRunning ()); }
3.1. A boolovský Pole s rovnakým názvom ako jeho prístupový server
Pridajme ďalší riadok kódu, aby bol príklad trochu komplikovaný:
@ Getter private boolean isRunning = true;
Bolo by trochu ťažkopádne, keby Lombok vytvoril metódu s názvom isIsRunning.
Namiesto toho vytvára Lombok beží ako predtým:
@Test public void whenBooleanFieldPrefixedWithIs_thenMethodNameIsSameAsFieldName () {LombokExamples lombokExamples = new LombokExamples (); assertTrue (lombokExamples.isRunning ()); }
3.2. Dva boolovský Polia s rovnakým menom prístupového servera
Niekedy môžu nastať konflikty.
Povedzme, že musíme mať nasledujúce riadky v rovnakej triede:
@ Getter public boolean running = true; @ Getter public boolean isRunning = false;
Existuje veľa dôvodov, prečo by sme sa mali vyhnúť mätúcej konvencii pomenovania, ako je táto. Jedným z nich je, že to vytvára konflikt pre Lombok.
Pri použití Lombokovej konvencie by tieto dve polia mali rovnaký názov metódy prístupového objektu: beží. Ale to, že budete mať v tej istej triede dve metódy s rovnakým názvom, spôsobí chybu kompilátora.
Lombok to rieši vytvorením iba jednej metódy prístupového objektu a v tomto prípade jej nasmerovaním beh, na základe objednávky deklarácie poľa:
@Test public void whenTwoBooleanFieldsCauseNamingConflict_thenLombokMapsToFirstDeclaredField () {LombokExamples lombokExamples = new LombokExamples (); assertTrue (lombokExamples.isRunning () == lombokExamples.running); assertFalse (lombokExamples.isRunning () == lombokExamples.isRunning); }
4. Používanie @Getter na a Boolovský Lúka
Teraz Lombok lieči Boolovský typ len trochu inak.
Vyskúšajme naposledy ten istý príklad behu, ale s Boolovský namiesto primitívneho typu:
@Získajte súkromný booleovský beh;
Namiesto tvorenia beží, Vygeneruje Lombok getRunning:
@Test public void whenFieldOfBooleanType_thenLombokPrefixesMethodWithGetInsteadOfIs () {LombokExamples lombokExamples = new LombokExamples (); assertTrue (lombokExamples.getRunning ()); }
5. Záver
V tomto článku sme skúmali, ako používať anotáciu @Getter spoločnosti Lombok pre boolovské primitívy a boolovské objekty.
A nezabudnite si pozrieť vzorky na Githube.