Saya menggunakan Eclipse untuk menghasilkan .equals()
dan .hashCode()
, dan ada opsi berlabel "Gunakan 'instanceof' untuk membandingkan jenis". Defaultnya adalah opsi ini tidak dicentang dan digunakan .getClass()
untuk membandingkan jenis. Apakah ada alasan aku harus lebih .getClass()
lebih instanceof
?
Tanpa menggunakan instanceof
:
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Menggunakan instanceof
:
if (obj == null)
return false;
if (!(obj instanceof MyClass))
return false;
Saya biasanya memeriksa instanceof
opsi, lalu masuk dan menghapus if (obj == null)
centang " ". (Itu mubazir karena objek nol akan selalu gagal instanceof
.) Apakah ada alasan itu ide yang buruk?
x instanceof SomeClass
salah jikax
itunull
. Oleh karena itu, sintaks kedua tidak memerlukan pemeriksaan nol.