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 instanceofopsi, 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 SomeClasssalah jikaxitunull. Oleh karena itu, sintaks kedua tidak memerlukan pemeriksaan nol.