Controllare se un valore esiste in un Enum in Java

Mattepuffo's logo
Controllare se un valore esiste in un Enum in Java

Controllare se un valore esiste in un Enum in Java

Gli Enum in Java sono un tipo di dato abbastanza usato.

Una delle cose che mi è capitato di dover fare, è controllare se un valore è presente nell'Enum.

Da quanto ho capito, in Java standard, non c'è un metodo se non iterare su tutte le voci e controllarle una per una.

A prescindere da se mi sbaglio o meno, ho risolto usando la libreria Apache Commons Lang!

Questa libreria ha un classe apposita per operazioni su Enum, che si chiama EnumUtils.

Se usate Maven. aggiungete questo al vostro pom.xml:

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.5</version>
        </dependency>

Questo un esempio abbastanza banale:

import org.apache.commons.lang3.EnumUtils;

public class Main {

    public enum Test {
        JSON("application/json"),
        XLS("application/vnd.ms-excel");

        private String value;

        Test(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    public static void main(String[] args) {
        if (EnumUtils.isValidEnum(Test.class, "JSON")) {
            System.out.println(Test.JSON.getValue());
        } else {
            System.out.println("KO");
        }
    }
}

Come vedete, il metodo isValidEnum fa tutto da solo.

Enjoy!


Condividi

Commentami!