A karakterláncok konvertálása enumu-ként a Java-ban

1. Bemutatkozás

Ebben a rövid cikkben megtudhatjuk, hogyan lehet egy Stringet gyorsan Java-ba konvertálni.

2. Beállítás

Az alapvető Java-val van dolgunk, így nincs szükségünk további tárgyak hozzáadására. Dolgozni fogunk a PizzaDeliveryStatusEnum az enums útmutató cikkéből.

3. A megtérés

Enums hasonlóak a szokásos Java osztályokhoz, és értékeik a dot jelöléssel érhetők el. Tehát a KÉSZ értéke PizzaDeliveryStatusEnum, tennénk:

PizzaStatusEnum readyStatus = PizzaStatusEnum.READY;

Ez rendben van, de mi lenne, ha a állapot értékét a-ként tárolnánk Húr, és át akarta alakítani a-vá PizzaStatusEnum? Ennek naiv módja egy óriás megírása lenne kapcsoló utasítás, amely visszaadja a enum minden lehetséges értékéhez. De egy ilyen kód megírása és fenntartása rémálom, és mindenáron kerülni kell.

Másrészről, a enum típus biztosítja a értéke() módszer, amely a Húr argumentumként adja vissza a megfelelőt enum tárgy:

PizzaStatusEnum readyStatus = PizzaStatusEnum.valueOf ("KÉSZ");

Egységes teszten keresztül ellenőrizhetjük, hogy ez a megközelítés valóban működik-e:

@Test public void whenConvertedIntoEnum_thenGetsConvertedCorrectly () {String pizzaEnumValue = "KÉSZ"; PizzaStatusEnum pizzaStatusEnum = PizzaStatusEnum.valueOf (pizzaEnumValue); assertTrue (pizzaStatusEnum == PizzaStatusEnum.READY); }

Fontos megjegyezni, hogy a értéke() A metódus megkülönbözteti a kis- és nagybetűket a hozzá adott argumentumtól, így olyan értéket ad át, amely nem egyezik meg az eredeti esetével enumÉrtékei egy IllegalArgumentException:

@Test (várható = IllegalArgumentException.class) public void whenConvertedIntoEnum_thenThrowsException () {String pizzaEnumValue = "rEAdY"; PizzaStatusEnum pizzaStatusEnum = PizzaStatusEnum.valueOf (pizzaEnumValue); } 

Olyan érték átadása, amely nem része az eredetinek enum’S értékei is vezetnek egy IllegalArgumentException:

@Test (várható = IllegalArgumentException.class) public void whenConvertedIntoEnum_thenThrowsException () {String pizzaEnumValue = "érvénytelen"; PizzaStatusEnum pizzaStatusEnum = PizzaStatusEnum.valueOf (pizzaEnumValue); }

4. Következtetés

Ebben a gyors cikkben láttuk, hogyan lehet a Húr egy an enum.

Nagyon ajánlott a beépítettet használni értéke() módszere enum típusú, ahelyett, hogy magunk végeznénk az átalakítást.

Mint mindig, a cikk kódja a GitHub oldalon található.