gpt4 book ai didi

java - HashMap 中的类(而不是对象)

转载 作者:行者123 更新时间:2023-12-01 11:08:23 24 4
gpt4 key购买 nike

我将(而不是对象)存储在HashMap中...

但我不明白它是否能正常工作...因为我无法覆盖 equals()hashCode(),对吧?我的意思是,HashMap 必须比较 2 个类,而不是 2 个对象...

那么,简单地将类放入 HashMap 中可以吗?

或者会引起问题吗?

protected HashMap<Class<? extends MyBaseClass>, int> someTable = new HashMap<>();

最佳答案

它会起作用;您可以安全地使用 Class 对象作为 HashMap 中的键。对于特定类的不同实例,getClass() 方法返回的值将引用相同的 Class 实例。 ClassequalshashCode 方法直接继承自 Object (==相等性和 native 哈希码实现)。

需要注意的一件事是,根据 map 的生命周期,有一个 chance for a memory leak由于类包含对其类加载器的引用的方式。不过,通常情况下,您无需担心这一点。

关于java - HashMap 中的类(而不是对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32675250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com