Pergunta

Existe uma maneira de impedir que um Treemap aceite valores nulos, ou preciso fazer uma verificação toda vez que inserir algo?

Foi útil?

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
scroll top