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

使用Class作为HashMap的关键是否会导致不良影响?

如何解决《使用Class作为HashMap的关键是否会导致不良影响?》经验,为你挑选了1个好方法。

考虑以下:

Map, Object> myMap = new HashMap, Object>();
Foo fooObject = New Foo();
myMap.put(fooObject.getClass(), fooObject)

请注意,java.lang.Class本身并不实现hashCode()方法,而是隐式地从java.lang.Object继承它.我在JDK 1.8中验证了这一点.

可以java.lang.Class安全地用作钥匙java.util.HashMap吗?将myMap.get(Foo.class)始终返回,我把喜欢的价值观myMap.put(fooObject.getClass(), fooObject)?考虑该软件具有各种类加载器和序列化机制.它仍然会是相同的结果吗?如果不是......会有什么选择?



1> Tim Biegelei..:

在我的头顶,是否有任何理由不使用字符串类名?例如,改为使用:

myMap.put("Foo", fooObject);

如果你是偏执狂,也许Foo在范围内可能有多个类,你可以使用完整的规范名称:

myMap.put(Foo.class.getCanonicalName(), fooObject);


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