Ho un sacco di setter nelle mie classi, oltre a molti metodi per aggiungere un elemento o un insieme di elementi agli elenchi o alle mappe.
Dovrei controllare i null per ognuno di essi, o dovrei permettere che NullPointerException
accada? Questo è pericoloso per le mappe, dato che potrei finire con valori nulli e non vorrei che.
Quindi in pratica, se ho questo:
public void setMyMap(Map<Key, List<Value>> map) {
myMap = map;
}
public void addItem(Key k, Value v) {
if (map.containsKey(k))
map.get(k).add(v);
else
map.put(k, new ArrayList<Value>(Arrays.asList(v)));
}
public void addItems(Key k, List<Value> values) {
for (Value v : values) addItem(k, v);
}
Ecc. Dovrei farlo?:
public void setMyMap(Map<Key, List<Value>> map) {
if (map != null) myMap = map;
}
public void addItem(Key k, Value v) {
if (k == null || v == null)
return;
if (map.containsKey(k))
map.get(k).add(v);
else
map.put(k, new ArrayList<Value>(Arrays.asList(v)));
}
public void addItems(Key k, List<Value> values) {
if (k == null || values == null)
return;
for (Value v : values) addItem(k, v);
}
Domanda a margine: non mi piace usare return;
come ho fatto io. Normalmente vorrei avvolgere l'intero blocco in un'istruzione if
controllando se entrambi non sono nulli, piuttosto che uscire prima dal metodo. Sono accettate entrambe le pratiche? Quale dovrei piuttosto fare? O è solo una questione di gusti?