在產生 .equals() 時 getClass() 與 instanceof 的首選用法
使用 Eclipse 的程式碼產生器產生 .equals()和.hashCode(),您可能會遇到使用“instanceof”進行類型比較的選項或.getClass()。預設選擇是 .getClass(),但本文探討使用 .getClass() 相對於 instanceof 是否有任何優點。
不使用instanceof 的比較:
if (obj == null) return false; if (getClass() != obj.getClass()) return false;
比較使用instanceof:
if (obj == null) return false; if (!(obj instanceof MyClass)) return false;
instanceof 的論證
著名Java 專家Josh Bloch 同意這種方法,並引用了以下推理:其他資源
以上是Java 的 `.equals()` 方法中的 `getClass()` 與 `instanceof` 哪個比較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!