¿Cómo obtengo el nombre de un tipo Java Enum dado su valor?Java obteniendo el nombre Enum dado el valor Enum
He escrito un código que funciona para un tipo particular de Enum, ¿puedo hacerlo más genérico?
El tipo de enumeración:
public enum Category {
APPLE("3"),
ORANGE("1"),
GRAPE("GRAPE"),
BANANA("Banana");
private final String identifier;
/**
* Constructor.
*
* @param identifier
* - identfier.
*/
private Category(String identifier) {
this.identifier = identifier;
}
/**
* {@inheritDoc}
*/
public String toString() {
return identifier;
}
public static String getEnumNameForValue(Object value){
Category[] values = Category.values();
String enumValue = null;
for(Category eachValue : values) {
enumValue =eachValue.toString();
if (enumValue.equals(value)) {
return eachValue.name();
}
}
return enumValue;
}
}
¿Hay algún motivo especial por el que desee utilizar algo que no sea el nombre() del Enum para buscarlos? Eso confundiría a mucha gente, y tampoco puede usar un simple 'Category.valueOf (nombre)'. – Thilo