作者:永远的菜鸟 | 来源:互联网 | 2022-12-21 17:53
如何解决《java.util.HashMap.containsKey(Objectkey)实现是否违反了java.util.Map.containsKey(Objectkey)文档?》经验,为你挑选了1个好方法。
java.util.Map.containsKey(Object key)
文件说:
@throws ClassCastException if the key is of an inappropriate type for this map
.
该java.util.HashMap.containsKey(Object key)
实现不说什么.
我的问题:
如果我创建一个Map map = new HashMap<>();
并调用该containsKey
方法Integer
的值是哈希值(作为a String
)但该方法不会抛出Exception
.
顺便说一句:4的散列不同于散列"4".
这真的是预期的行为吗?
THX提前!
1> Mena..:
这似乎是一个可选限制,不适用于HashMap
.
如API中所述containsKey
:
[...]
抛出:
ClassCastException
- 如果该地图的密钥类型不合适(可选)
注意"可选",并查看链接文档:
某些集合实现对它们可能包含的元素有限制.例如,某些实现禁止null
元素,并且一些实现对其元素的类型有限制.尝试添加不合格的元素会引发未经检查的异常,通常NullPointerException
或ClassCastException
.试图查询不合格元素的存在可能会引发异常,或者它可能只是返回false; 一些实现将展示前一种行为,一些将展示后者.更一般地,尝试对不合格的元素进行操作,其完成不会导致将不合格的元素插入到集合中,可以在实现的选择中抛出异常或者它可以成功.此类异常在此接口的规范中标记为"可选".