java.util.HashMap.containsKey(对象键)实现是否违反了java.util.Map.containsKey(对象键)文档?
java.util.HashMap.containsKey(对象键)实现是否违反了java.util.Map.containsKey(对象键)文档?,java,interface,hashmap,Java,Interface,Hashmap,java.util.Map.containsKey(对象键)文档说明: @如果键的类型不适合此映射,则抛出ClassCastException java.util.HashMap.containsKey(对象键)实现没有对它做任何说明 我的问题: 如果我创建一个Map Map=newhashmap()并使用整数调用containsKey方法。该值是散列的(作为字符串),但该方法不会抛出异常 顺便提一下,4的散列与“4”的散列不同 这真的是预期的行为吗?这似乎是一个可选的限制,不适用于HashMa
java.util.Map.containsKey(对象键)
文档说明:
@如果键的类型不适合此映射,则抛出ClassCastException
java.util.HashMap.containsKey(对象键)
实现没有对它做任何说明
我的问题:
如果我创建一个Map Map=newhashmap()
并使用整数调用containsKey
方法。该值是散列的(作为字符串),但该方法不会抛出异常
顺便提一下,4的散列与“4”的散列不同
这真的是预期的行为吗?这似乎是一个可选的限制,不适用于HashMap
如containsKey
中所述:
[……]
抛出:
ClassCastException
-如果该键的类型不适合此映射()
请注意“可选”,并参见链接:
某些集合实现对它们可能包含的元素有限制。例如,有些实现禁止null
元素,有些实现对其元素的类型有限制。尝试添加不合格的元素会引发未经检查的异常,通常是NullPointerException
或ClassCastException
。试图查询不合格元素的存在可能会引发异常,或者只返回false;有些实现将展示前一种行为,有些实现将展示后一种行为。更一般地说,在不合格元素上尝试操作(其完成不会导致将不合格元素插入到集合中)可能会引发异常,或者可能会成功(由实现选择)。此类异常在该接口规范中标记为“可选”
列为可选:键必须是字符串的泛型类型信息在运行时不可用。HashMap应该如何发现必须抛出ClassCastException?