Java:Treemap - 禁止null?

时间:2009-10-11 01:50:38

标签: java null treemap

有没有办法阻止树形图接受空值,还是每次输入内容时都需要检查?

2 个答案:

答案 0 :(得分:10)

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);
    }
}

您也可以抛出IllegalArgumentException,但NullPointerException是最合适的IMO。

请注意,不正确返回null而不是抛出异常。 java.util.Map API指出put操作的结果是k映射的先前值,如果之前未映射null,则k

答案 1 :(得分:4)

编写一个包含真实Set的委托Set,并为Set.add()添加一个保护。

如果您向TreeSet提供比较器,如果比较器的两个输入中的任何一个为空,您也可以抱怨。