我想创建类似(Object.class)的类的哈希映射。我想知道是否
Object.class被认为等于另一个Object.class?
是否有另一个Object.class实例导致它具有不同的哈希码?
答案 0 :(得分:5)
文字Object.class
将始终在同一个类加载器中返回相同的引用。
类文字求值为指定类型(或void)的Class对象,由当前实例的类的定义类加载器定义。
请注意上面引用中的定冠词(“the”) - 在同一个类加载器中,任何特定类只有一个 Class
对象。
所以是的,你会得到相同的哈希码 - 因为你将有两个对同一个对象的引用。
答案 1 :(得分:2)
在给定的类加载器中,对于每个加载的类,都有一个类型为Class
的对象。
x1.getClass()
和x2.getClass()
具有相同的动态类型, x1
和x2
就会返回相同的引用。
答案 2 :(得分:2)
由于每个类型化类只有一个.class对象的实例,所有引用都将指向同一个对象(Object.class),因此将具有相同的哈希码(因为底层对象是相同的)< / p>