我會經常需要從串碼轉換成其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