我会经常需要从串码转换成其Enum
类型。 请参阅下面的代码片段。我认为这是非常低效的。如何改进 方法deref
以便:如何改进这种枚举类型?
- 这将是线程安全的。
- 这是更快。
代码:
public enum SigninErrorCodes
{
InvalidUser("a0"), InvalidPassword("b5"), NoServerResponse("s2");
SigninErrorCodes(String code) { _code = code; }
public String code() { return _code; }
public static SigninErrorCodes deref(String code)
{
SigninErrorCodes[] verbs = values();
Map<String, SigninErrorCodes> m = new HashMap<String,SigninErrorCodes>(3);
for(int i=0; i<verbs.length; i++)
m.put(verbs[i].code(), verbs[i]);
return m.get(code);
}
private final String _code;
}
马库斯,这很有趣。你能否指出我的一个消息来源说HashMaps应该被初始化为其预期密钥的两倍? – Yishai 2009-06-29 03:07:24