A Lombok @Getter for Boolean Fields használata
1. Bemutatkozás
A Project Lombok egy népszerű könyvtár a Java kazánlemez csökkentésére.
Ebben a gyors bemutatóban megnézzük, hogy áll Lombok @Getter az annotáció logikai mezőkön működik, így nincs szükség a megfelelő getter metódusok létrehozására.
2. Maven-függőség
Kezdjük azzal, hogy hozzáadjuk a Lombok projektet pom.xml:
org.projectlombok lombok 1.18.10
3. A @Getter használata a logikai Terület
Tegyük fel, hogy azt akarjuk, hogy a Lombok hozzon létre egy hozzáférési módszert a saját logikai mezőnkhöz.
Azzal a mezővel feljegyezhetjük @Getter:
@Jobb privát logikai futás;
A Lombok pedig annotációs processzorát használja egy fut() módszer az osztályban.
És most hivatkozhatunk rá, annak ellenére, hogy nem mi írtuk meg a módszert:
@Test public void whenBasicBooleanField_thenMethodNamePrefixedWithIsFollowedByFieldName () {LombokExamples lombokExamples = new LombokExamples (); assertFalse (lombokExamples.isRunning ()); }
3.1. A logikai A mezőnek ugyanaz a neve, mint az Accessorjának
Adjunk hozzá egy újabb kódsort, hogy a példa kissé trükkös legyen:
@Getter privát logikai isRunning = true;
Kicsit nehézkes lenne, ha a Lombok létrehozna egy úgynevezett módszert isIsRunning.
Ehelyett Lombok alkot fut mint korábban:
@Test public void whenBooleanFieldPrefixedWithIs_thenMethodNameIsSameAsFieldName () {LombokExamples lombokExamples = new LombokExamples (); assertTrue (lombokExamples.isRunning ()); }
3.2. Kettő logikai Mezők azonos hozzáférési névvel
Néha lehetnek konfliktusok.
Tegyük fel, hogy a következő sorokat kell használnunk ugyanabban az osztályban:
@Jobb nyilvános logikai futás = true; @Getter public boolean isRunning = false;
Sok oka van annak, hogy el kell kerülnünk az ilyen zavaros elnevezési szokásokat. Az egyik az, hogy konfliktust teremt Lombok számára.
A Lombok konvencióját használva ennek a két mezőnek ugyanaz az accessor metódus neve: fut. De ha két, azonos nevű metódus van ugyanabban az osztályban, fordítói hiba keletkezik.
A Lombok ezt úgy oldja meg, hogy csak egy hozzáférési módszert hoz létre, és ebben az esetben rá mutat futás, terepi nyilatkozat alapján:
@Test public void whenTwoBooleanFieldsCauseNamingConflict_thenLombokMapsToFirstDeclaredField () {LombokExamples lombokExamples = new LombokExamples (); assertTrue (lombokExamples.isRunning () == lombokExamples.running); assertFalse (lombokExamples.isRunning () == lombokExamples.isRunning); }
4. A @Getter használata a Logikai Terület
Most Lombok kezeli a Logikai írd csak kicsit másképp.
Próbáljuk ki utoljára ugyanazt a futó példánkat, de a Logikai a primitív típus helyett:
@Getter privát logikai futás;
Teremtés helyett fut, Lombok fog generálni getRunning:
@Test public void whenFieldOfBooleanType_thenLombokPrefixesMethodWithGetInsteadOfIs () {LombokExamples lombokExamples = new LombokExamples (); assertTrue (lombokExamples.getRunning ()); }
5. Következtetés
Ebben a cikkben azt kutattuk, hogyan lehet használni Lombok @Getter kommentárját logikai primitívekhez és logikai objektumokhoz.
És mindenképpen nézze meg a mintákat a Githubon.