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

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

Barbara Streisand
Lepaskan: 2024-11-28 11:18:11
asal
343 orang telah melayarinya

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

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:

  • Null-Safe: Operator == mengembalikan palsu apabila membandingkan ahli enum kepada null, manakala equals() mungkin membuang NullPointerException.

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
}
Salin selepas log masuk

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!

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