Come si ottiene il nome di un tipo di Java Enum in base al relativo valore?Java ha ottenuto il nome Enum in base al valore Enum
Ho scritto codice che funziona per un particolare tipo Enum, posso renderlo più generico?
Il tipo enum:
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;
}
}
C'è un motivo particolare per cui si desidera utilizzare qualcosa di diverso dal nome() dell'Enum per cercarli? Questo potrebbe confondere un sacco di gente, e non puoi nemmeno usare un semplice 'Category.valueOf (name)'. – Thilo