Java 同一类的两个类是否具有相同的哈希代码,它们是否被视为相等?
我想创建一个类的hashmap,比如(Object.class)。我想知道 Object.class是否被视为等同于另一个Object.classJava 同一类的两个类是否具有相同的哈希代码,它们是否被视为相等?,java,Java,我想创建一个类的hashmap,比如(Object.class)。我想知道 Object.class是否被视为等同于另一个Object.class Object.class是否还有另一个实例导致它具有不同的hashcode?在给定的类加载器中,对于每个加载的类,都有一个类型为class的对象 x1.getClass()和x2.getClass()返回相同的引用,只要x1和x2具有相同的动态类型。文本对象。class将始终在相同的类加载器中返回相同的引用 发件人: 类文本计算为当前实例类的定义类装
Object.class是否还有另一个实例导致它具有不同的hashcode?在给定的类加载器中,对于每个加载的类,都有一个类型为
class
的对象
x1.getClass()
和x2.getClass()
返回相同的引用,只要x1
和x2
具有相同的动态类型。文本对象。class
将始终在相同的类加载器中返回相同的引用
发件人:
类文本计算为当前实例类的定义类装入器定义的命名类型(或void)的类对象
注意上面引文中的定冠词(“the”),在同一个类加载器中,任何特定类只有一个Class
对象
因此,是的,您将获得相同的哈希代码-因为您将有两个对同一对象的引用。由于每个类型化类只有一个.class对象的实例,所有引用都将指向同一对象(object.class),因此将具有相同的哈希代码(因为基础对象是相同的)