一些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