如何根據給定值的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