Rumah > Java > javaTutorial > Patutkah Anda Gunakan == atau equals() untuk Membandingkan Ahli Java Enum?

Patutkah Anda Gunakan == atau equals() untuk Membandingkan Ahli Java Enum?

Mary-Kate Olsen
Lepaskan: 2024-11-17 21:15:02
asal
870 orang telah melayarinya

Should You Use == or equals() to Compare Java Enum Members?

Memilih Antara == dan sama dengan() untuk Perbandingan Ahli Java Enum

Enum Java disusun ke dalam kelas dengan pembina peribadi dan ahli statik. Apabila membandingkan ahli enum, anda mungkin menghadapi perdebatan antara menggunakan .equals() dan operator equality ==.

Pilihan 1: .equals()

The Kaedah .equals() ialah kaedah terbina dalam untuk semua objek dalam Java. Ia melakukan semakan kesamaan rujukan untuk objek dan semakan kesamaan kandungan untuk enum. Untuk enum, kaedah .equals() menyemak sama ada kedua-dua ahli merujuk kepada pemalar yang sama.

Pilihan 2: ==

Pengendali kesamaan == melakukan semakan kesaksamaan rujukan. Ia menentukan sama ada kedua-dua ahli merujuk kepada identiti objek yang sama, tanpa mengira jenis enum.

Operator Betul

Secara teknikal, kedua-dua pilihan adalah sah. Kaedah .equals() hanya menunda kepada == dalam kes enum. Walau bagaimanapun, secara amnya disyorkan untuk menggunakan == untuk perbandingan enum kerana:

  • Ia selamat nol: x == null adalah sah, manakala x.equals(null) akan membuang NullPointerException.
  • Ia lebih cekap: == ialah semakan rujukan mudah, manakala .equals() melibatkan perbandingan kandungan dan memerlukan penyahrujukan objek.
  • Ia lebih konsisten: Kod Java yang dijana secara automatik menggunakan == untuk perbandingan enum, memastikan ketekalan dalam pangkalan kod anda.

Oleh itu, adalah dinasihatkan untuk menggunakan == apabila membandingkan enum Java ahli.

Atas ialah kandungan terperinci Patutkah Anda Gunakan == atau equals() untuk Membandingkan Ahli Java Enum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan