【问题标题】:Java: Treemap - forbid null?Java:树形图 - 禁止为空?
【发布时间】:2009-10-11 01:50:38
【问题描述】:

有没有办法阻止树形图接受空值,或者我是否需要在每次输入内容时进行检查?

【问题讨论】:

    标签: java null treemap


    【解决方案1】:
    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

    【讨论】:

    • @akf:就像我说的......这是一个见仁见智的问题:-)
    【解决方案2】:

    编写一个封装真实 Set 的委托 Set,并为 Set.add() 添加一个守卫。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2021-05-26
      • 1970-01-01
      • 2014-09-07
      相关资源
      最近更新 更多