alguna clase de mensajes es capaz de devolver un nombre de etiqueta basado en el número de etiqueta
Dado que esta clase es instanciada muchas veces, soy un poco reacio a crear un HashMap para cada instancia:Java interruptor codificado 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);
}
}
a favor de hardcoding:
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;
}
}
}
Cuando se pone todo en la mezcla (memoria, el rendimiento, GC, ...)
¿Hay alguna razón para apegarse a HashMap?
¿No sería este el tipo de situación en la que un 'enum' sería ideal? – Edd
Si la lista es la misma para todos sus mensajes, también puede hacer que el mapa sea estático. – assylias
Además, ¿determinó usted (al elaborar el perfil) que la ejemplificación de la clase es realmente un problema? – joergl