Lombok Builder egyedi szetterrel

1. Bemutatkozás

A Project Lombok egy népszerű Java könyvtár, amely segít csökkenteni a fejlesztő által írandó kazánlap kódját.

Ebben az oktatóanyagban megnézzük, hogyan működik a Lombok @Építész az annotáció működik, és hogyan tudjuk testre szabni sajátos igényeink szerint.

2. Maven-függőség

Kezdjük azzal, hogy hozzáadjuk a függőséget a sajátunkhoz pom.xml:

 org.projectlombok lombok 1.18.10 

3. Lombok Építész Megjegyzés

Mielőtt megvizsgálnánk a Lombok által létrehozott készítő osztály testreszabását, készítsünk egy gyors áttekintést a Lombok működéséről @Építész az annotáció működik. A Lombok funkcióit már teljes körűen bemutatjuk.

A @Építész az annotáció segítségével automatikusan létrehozhatunk egy építőt az osztályunkhoz. Példaként egy olyan üzenetkezelő rendszert fogunk használni, ahol az egyik felhasználó üzenetet küldhet egy másik felhasználónak. Az üzenet egyszerű szöveges karakterlánc vagy a File. A Lombok használatával meghatározhatjuk a sajátunkat Üzenet osztály az alábbiak szerint:

@Builder @Data public class Message {private String sender; privát String címzett; privát karakterlánc szöveg; privát File fájl; }

@Adat generálja az összes kazánlapot, amely általában egy egyszerű POJO-hoz (Plain Old Java Object) társul: getterek az összes mezőhöz, az összes nem végső mező beállításai és Sztring, egyenlő és hash kód megvalósítások és egy kivitelező.

A létrehozott készítő használatával most létrehozhatunk példányainkat Üzenet osztály:

Üzenet = Message.builder () .sender ("[email protected]") .címzett ("[email protected]") .text ("Hogy vagy ma?") .Build ();

A @Építész az annotáció az alapértelmezett értékeket is támogatja az attribútumoknál, de most nem térünk ki rá. Ebből a példából egyértelművé kell tenni, hogy a @Építész az annotáció meglehetősen hatékony, és sok kazánlapkódot helyettesíthet.

4. A Lombok Builders testreszabása

Az előző szakasz bemutatta, hogyan használhatjuk a Lombokot egy készítő osztály előállítására. De lehetnek olyan esetek, amikor a létrehozott készítő nem elég. Példánkban van egy korlátozásunk, hogy az üzenet csak szöveget vagy fájlt tartalmazhat. Nem lehet mindkettő. Lombok ezt természetesen nem tudja, és a létrehozott építtető boldogan megengedi, hogy az illegális állapotba kerüljünk.

Szerencsére megoldhatjuk ezt a problémát az építő testreszabásával.

A Lombok készítőjének testreszabása egyszerű és egyszerű: megírjuk az építtető testre szabni kívánt részeit és a Lombokot @Építész a kommentár egyszerűen nem generálja azokat a részeket. Tehát a példánkban ez lenne:

public static class MessageBuilder {private String text; privát File fájl; public MessageBuilder szöveg (karakterlánc szöveg) {this.text = text; VerifyTextOrFile (); adja vissza ezt; } public MessageBuilder fájl (Fájl fájl) {this.file = fájl; VerifyTextOrFile (); adja vissza ezt; } private void verTextOrFile () {if (text! = null && file! = null) {dobja az új IllegalStateException-t ("Nem lehet" szöveget "és" fájlt "küldeni."); }}}

Felhívjuk figyelmét, hogy nem kellett nyilatkoznunk a feladó és befogadó tagok, vagy a hozzájuk kapcsolódó építő módszerek. A Lombok továbbra is ezeket generálja nekünk.

Ha megpróbálunk a Üzenet példány szöveggel és egy fájl a következő kóddal:

Üzenet = Message.builder () .sender ("[email protected]") .cipient ("[email protected]") .text ("How are you today?") .File (new File ("/ path / to / fájl ")) .build ();

Ez a következő kivételt eredményezi:

Kivétel a "main" szálban java.lang.IllegalStateException: Nem lehet "szöveget" és "fájlt" küldeni.

5. Következtetés

Ebben a gyors cikkben azt vizsgáltuk, hogyan lehet testre szabni a Lombok készítőjét.

Mint mindig, a kód elérhető a GitHubon.


$config[zx-auto] not found$config[zx-overlay] not found