您可以在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