Membandingkan Ahli Java Enum: == vs. equals()
Apabila bekerja dengan jenis enum Java, pembangun sering menghadapi persoalan sama ada untuk menggunakan pengendali kesamaan (==) atau kaedah equals() untuk membandingkan ahli enum. Soalan ini timbul kerana enum disusun ke dalam kelas, yang membawa kepada kekeliruan tentang pelaksanaan asas.
Memahami Java Enum
Java enum ialah kelas dengan pembina persendirian dan ahli statik awam mewakili nilai enum. Ahli ini pada asasnya adalah pemalar dan tidak boleh diubah.
Membandingkan Ahli Enum
Kedua-dua operator == dan kaedah equals() boleh digunakan untuk membandingkan ahli enum. Kaedah equals() menyediakan cara standard untuk membandingkan objek dalam Java, manakala == membandingkan rujukan objek yang dibandingkan.
Kesamaan Teknikal
Memeriksa sumber kod kaedah equals() mendedahkan bahawa ia hanya menunda kepada operator ==. Ini bermakna, secara teknikal, kedua-dua pendekatan adalah setara untuk membandingkan ahli enum.
Pendekatan Disyorkan
Walau bagaimanapun, secara amnya disyorkan untuk menggunakan operator == untuk membandingkan enum ahli. Pendekatan ini ialah:
Contoh
Kod berikut menunjukkan penggunaan kedua-dua == dan equals() untuk membandingkan ahli enum:
public enum MyEnum { A, B, C } public static void main(String[] args) { MyEnum a = MyEnum.A; MyEnum b = MyEnum.B; System.out.println(a == b); // false System.out.println(a.equals(b)); // false }
Dalam contoh ini, kedua-dua == dan equals() mengembalikan false kerana a dan b merujuk kepada ahli enum yang berbeza.
Atas ialah kandungan terperinci Java Enums: Patutkah Anda Gunakan == atau equals() untuk Membandingkan Ahli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!