该地图在这里可能是过大的。除非您打算使用四个以上的枚举值,否则可以通过简单地遍历有效字符串并返回正确的字符串来实现getByTracName(String
tn)。如果映射键始终是枚举名称,则可以执行以下操作:
public enum Type {CHANGESET,NEW_TICKET,TICKET_CHANGED,CLOSED_TICKET;private static final Map<String, Type> tracNameMap = new HashMap<String, Type>();static { for (Type t:Type.values()) { tracNameMap.put(t.name(), t); }}public static Type getByTracName(String tn) { return tracNameMap.get(tracNameMap);}}
或者您可以执行以下操作:
public static Type getByTracName(String tn) { return Enum.valueOf(Type.class,tn);}


