您可以在unknown
或default
或invalid
值添加到您的枚舉將在情況下被映射,如果它是null
或empty space
package com.test;
import java.util.HashMap;
public class Brand{
private static HashMap<String,BrandName> map = new HashMap<String,BrandName>();
public enum BrandName {
HERO("hero"),HONDA("honda"),UNKNOWN("default");
private String value = null;
private BrandName(String value){
this.value = value;
addToMap();
}
private void addToMap(){
map.put(this.value, this);
}
@Override
public String toString(){
return this.value;
}
public static BrandName fromValue(String value){
return map.get(value) != null ? map.get(value) : map.get("default");
}
}
}
使用fromValue
方法,你可以得到價值枚舉對象。 使用toString
方法可以獲得枚舉對象的值。 map
將包含枚舉對象映射的值。如果地圖中不存在類似null
或empty space
的值,則映射將返回null,在這種情況下,方法fromValue
將返回UNKNOWN
enum對象。
System.out.println(Brand.BrandName.HERO.toString());
System.out.println(Brand.BrandName.fromValue("").toString());
System.out.println(Brand.BrandName.fromValue(null).toString());
System.out.println(Brand.BrandName.fromValue("honda").toString());
如何進行映射? – Loke
添加了代碼..這是使用emun的正確而靈活的方式。 –
這看起來很不錯。謝謝。 – Loke