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!
java enum maven apache commons lang enumutils isvalidenum
Commentami!