以这种方式检查类相等是否有效:
if (object.getClass() == anotherObject.getClass()) {
}
可能答案是肯定的,因为Class类没有覆盖equals()
所以看起来Object.equals()
适用于Class的相等性。但是,如果在其他地方记录下来,我会感兴趣。感谢。
答案 0 :(得分:6)
请参阅JLS Section 12.2:
表现良好的类加载器维护这些属性:
- 给定相同的名称,一个好的类加载器应该总是返回相同的类对象。
- ...
恶意类加载器可能违反这些属性。但是,它不能破坏类型系统的安全性,因为Java虚拟机可以防止这种情况。
因此,如果您的实例是由同一个类加载器加载的类,则可以使用identity进行测试。