热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java.util.HashMap.containsKey(Objectkey)实现是否违反了java.util.Map.containsKey(Objectkey)文档?

如何解决《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元素,并且一些实现对其元素的类型有限制.尝试添加不合格的元素会引发未经检查的异常,通常NullPointerExceptionClassCastException.试图查询不合格元素的存在可能会引发异常,或者它可能只是返回false; 一些实现将展示前一种行为,一些将展示后者.更一般地,尝试对不合格的元素进行操作,其完成不会导致将不合格的元素插入到集合中,可以在实现的选择中抛出异常或者它可以成功.此类异常在此接口的规范中标记为"可选".


推荐阅读
author-avatar
永远的菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有