在 .equals() 实现中优先选择 instanceof 而不是 getClass()
在 Eclipse 中生成 .equals() 方法时,开发人员会看到选择使用“getClass()”或“instanceof”来比较对象类型。虽然 Eclipse 默认使用“getClass()”,但通常最好选择“instanceof”。
首选 instanceof 的原因
空检查的最佳实践
关于null 检查,在使用“instanceof”时删除“if (obj == null)”语句确实是一个好习惯。这是因为“instanceof”保证“obj”是相关类的实例,并且空对象不能是任何类的实例。
支持参数
Josh Bloch,《Effective Java》的作者,提倡在 .equals() 实现中使用“instanceof”。他认为,它确保了对里氏替换原则的正确遵守,并防止依赖 equals 方法的集合中出现令人惊讶的行为。
对此方法的其他支持可以在 Stack Overflow 上的答案和第三个答案中找到Bloch 的书“Effective Java”的章节。
以上是你应该在 Java 的 `.equals()` 方法中使用 `instanceof` 或 `getClass()` 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!