如果我有两个对象如下......
ClassA classAInstance = ...
ClassB classBInstance = ...
...其中ClassB是ClassA的直接子类(扩展),分配给'classAInstance'和'classBInstance'的实际对象可以是ClassA,ClassB的实例,也可以是ClassA的直接或间接子类...
然后如何检查分配给'classAInstance'和'classBInstance'的对象是否属于同一个类?以下是正确的......
classAInstance.getClass().equals(classBInstance.getClass());
......还是我应该比较一些其他财产?
答案 0 :(得分:6)
不,这是做到这一点的方式......假设这是正确的做法。当然,与大多数反思一样,如果您希望对ClassB
层次结构的工作方式进行任何重构,那么比较类就非常脆弱。
答案 1 :(得分:0)
是的,这样可行:
classAInstance.getClass().equals(classBInstance.getClass())
这与
相同classAInstance.getClass() == classBInstance.getClass()