Setiap programmer Java yang kompeten tahu bahwa Anda perlu menggunakan String.equals () untuk membandingkan string, bukan == karena == memeriksa persamaan referensi.
Ketika saya berurusan dengan string, sebagian besar waktu saya memeriksa kesetaraan nilai daripada kesetaraan referensi. Tampaknya bagi saya bahwa akan lebih intuitif jika bahasa memungkinkan nilai string dibandingkan dengan hanya menggunakan ==.
Sebagai perbandingan, operator C # == memeriksa kesetaraan nilai untuk string . Dan jika Anda benar-benar perlu memeriksa persamaan referensi, Anda dapat menggunakan String.ReferenceEquals.
Poin penting lainnya adalah bahwa String tidak dapat diubah, sehingga tidak ada salahnya dilakukan dengan mengizinkan fitur ini.
Apakah ada alasan khusus mengapa ini tidak diterapkan di Jawa?
==
operator hanya memetakan Equals
jika ==
operator dilaksanakan dengan cara itu. Perilaku default untuk ==
adalah sama dengan ReferenceEquals
(sebenarnya, ReferenceEquals
didefinisikan sebagai versi objek ==
)
==
objek kesetaraan daneq
referensi kesetaraan ( ofps.oreilly.com/titles/9780596155957/… ).