如何根据给定值的Java枚举类型获取名称?获取给定Enum值的枚举名称的Java
我已经编写了适用于特定枚举类型的代码,我可以使它更通用吗?
枚举类型:
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;
}
}
是否有一个特殊的原因,您为什么要使用Enum的名称()以外的东西来查找它们?这会让很多人感到困惑,而且你也不能使用一个简单的'Category.valueOf(name)'。 – Thilo 2010-10-08 09:36:12