Вы можете добавить значение 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
метод, вы можете получить объект enum из значения.используя метод toString
, вы можете получить значение объекта enum.map
будет содержать значение для сопоставления объекта enum.Если значение типа null
или empty space
не существует на карте, карта вернет значение NULL, и в этом случае метод fromValue
вернет UNKNOWN
объект перечисления.
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());