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<String,String> map = new HashMap<>();
并使用containsKey
调用Integer
方法,则该值将被散列(作为String
),但该方法不会抛出Exception
。
附带地,哈希4与“4”的哈希不同。
这真的是预期的行为吗?
最佳答案
这似乎是一个可选的限制,未在HashMap
中应用。
如API中针对containsKey
所述:
注意“可选”,并查看链接的documentation: