Java: Treemap - Proibir nulo?
Pergunta
Existe uma maneira de impedir que um Treemap aceite valores nulos, ou preciso fazer uma verificação toda vez que inserir algo?
Solução
Escreva um conjunto delegado que envolva o conjunto real e adicione um guarda para set.add ().
Se você estiver fornecendo um comparador com o TreeSet, também poderá reclamar se qualquer um dos dois entradas para o comparador for nulo.
Outras dicas
public class NonNullTreeMap<K,V> extends TreeMap<K,V> {
@Override
public V put(K k, V v) {
if (v == null) {
throw new NullPointerException("value is null");
}
return super.put(k,v);
}
}
Você também pode lançar uma BigalArgumentException ilegal, mas uma NullPointerException é o mais apropriado IMO.
Observe que é incorreta para retornar null
Em vez de jogar uma exceção. o java.util.Map
API afirma que o resultado do put
operação é o valor anterior do mapeamento para k
, ou null
E se k
não foi mapeado anteriormente.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow