如何检查两个对象是否属于同一类?

时间:2012-03-12 17:56:23

标签: java

如果我有两个对象如下......

ClassA classAInstance = ...
ClassB classBInstance = ...

...其中ClassB是ClassA的直接子类(扩展),分配给'classAInstance'和'classBInstance'的实际对象可以是ClassA,ClassB的实例,也可以是ClassA的直接或间接子类...

然后如何检查分配给'classAInstance'和'classBInstance'的对象是否属于同一个类?以下是正确的......

classAInstance.getClass().equals(classBInstance.getClass());

......还是我应该比较一些其他财产?

2 个答案:

答案 0 :(得分:6)

不,这是做到这一点的方式......假设这是正确的做法。当然,与大多数反思一样,如果您希望对ClassB层次结构的工作方式进行任何重构,那么比较类就非常脆弱。

答案 1 :(得分:0)

是的,这样可行:

classAInstance.getClass().equals(classBInstance.getClass())

这与

相同
classAInstance.getClass() == classBInstance.getClass()