有没有办法阻止树形图接受空值,或者我每次输入内容时都需要进行检查?
问问题
6263 次
2 回答
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。
请注意,返回而不是抛出异常是不正确的。API 声明操作的结果null
是映射的先前值,或者如果先前未映射。 java.util.Map
put
k
null
k
于 2009-10-11T02:42:30.173 回答
4
编写一个包装真实 Set 的委托 Set,并为 Set.add() 添加一个守卫。
如果您要为 TreeSet 提供比较器,您也可以抱怨比较器的两个输入中的任何一个为空。
于 2009-10-11T01:59:32.443 回答