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.