【发布时间】:2009-10-11 01:50:38
【问题描述】:
有没有办法阻止树形图接受空值,或者我是否需要在每次输入内容时进行检查?
【问题讨论】:
有没有办法阻止树形图接受空值,或者我是否需要在每次输入内容时进行检查?
【问题讨论】:
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 的先前映射值,或者如果k 先前未映射,则为null。
【讨论】:
编写一个封装真实 Set 的委托 Set,并为 Set.add() 添加一个守卫。
如果您为 TreeSet 提供比较器,您也可以抱怨比较器的两个输入中的任何一个为空。
【讨论】: