在.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中文網其他相關文章!