【发布时间】:2019-01-21 08:14:51
【问题描述】:
我知道 Hashtable 中不允许使用 null 键,因为在 Hashtable 中存储元素必须需要哈希码。但如果 key 为 null,它将无法计算 null key 的哈希码。但我不明白 Sun 开发人员不允许空值的确切原因是什么。
有人说在 put 方法实现中对 value 进行了 null 检查,这就是它抛出 NullPointerException 的原因。但我的问题是为什么要检查空值。有没有什么具体的原因。
我读了很多书,但没有得到满意的答案。有人说如果有 null 值存在歧义,如果您尝试使用 get() 方法检索值,它将返回 null,而这个 null 是因为实际值为 null 或缺少键,这就是为什么 null 并且无法预测原因。所以我需要有证据的精确答案。
【问题讨论】:
-
读取put方法的实现。下载JDK并浏览代码
-
我认为您的问题在this StackOverflow 帖子中描述得很好
-
我认为您应该让 SUN 开发人员知道“确切的原因”是什么……尤其是在您需要证据的情况下!
标签: java