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:

10-08 03:29