一些Message類是能夠返回標籤名基於標籤號碼
因爲此類實例化以後,很多時候,我有點捨不得爲每個實例創建一個HashMap:Java的硬編碼開關VS HashMap的
public class Message {
private HashMap<Integer,String> tagMap;
public Message() {
this.tagMap = new HashMap<Integer,String>();
this.tagMap.put(1, "tag1Name");
this.tagMap.put(2, "tag2Name");
this.tagMap.put(3, "tag3Name");
}
public String getTagName(int tagNumber) {
return this.tagMap.get(tagNumber);
}
}
贊成硬編碼的:
public class Message {
public Message() {
}
public String getTagName(int tagNumber) {
switch(tagNumber) {
case 1: return "tag1Name";
case 2: return "tag2Name";
case 3: return "tag3Name";
default return null;
}
}
}
當你把一切都在混合(內存,性能,GC,...)
是否有理由堅持HashMap?
難道這不是'枚舉'會是理想的情況嗎? – Edd 2012-08-17 09:48:32
如果列表對於所有消息都是相同的,那麼也可以使地圖變爲靜態。 – assylias 2012-08-17 09:49:52
另外,你是否(通過剖析)確定該類的實例化確實是一個問題? – joergl 2012-08-17 09:51:00