最近在了解《Effective Java》中提到的eques方法的限制时,有讲到igetClass()可以替代nstanceof来判断是否是同一个子类。于是了解了一下两者的区别。
简单的说,它们的区别是,同样是判断子类和父类是否相等,子类 instanceof 父类 为true
子类.getClass() == 父类.getClass() 为false.
因为这一点简单的差别,在实现子类的equals()方法时,要多加注意
本文探讨了《EffectiveJava》中提到的equals方法实现时应注意的细节,特别是getClass()与instanceof的区别。子类使用instanceof判断父类会返回true,而getClass()比较则为false。在实现equals方法时,正确使用这些概念至关重要。
最近在了解《Effective Java》中提到的eques方法的限制时,有讲到igetClass()可以替代nstanceof来判断是否是同一个子类。于是了解了一下两者的区别。
简单的说,它们的区别是,同样是判断子类和父类是否相等,子类 instanceof 父类 为true
子类.getClass() == 父类.getClass() 为false.
因为这一点简单的差别,在实现子类的equals()方法时,要多加注意

被折叠的 条评论
为什么被折叠?