Rumah > Java > javaTutorial > teks badan

Membandingkan Ahli Java Enum: Sekiranya Anda Menggunakan == atau sama dengan()?

Mary-Kate Olsen
Lepaskan: 2024-11-12 22:09:02
asal
240 orang telah melayarinya

Comparing Java Enum Members: Should You Use == or equals()?

Membandingkan Ahli Java Enum: == or equals()

Semasa bekerja dengan Java enums, persoalan biasa timbul mengenai operator yang sesuai untuk digunakan untuk membandingkan ahli enum. Secara tradisinya, pembangun telah menggunakan kaedah .equals(), seperti yang dilihat dalam:

public useEnums(SomeEnum a) {
    if (a.equals(SomeEnum.SOME_ENUM_VALUE)) {
        ...
    }
}
Salin selepas log masuk

Walau bagaimanapun, beberapa contoh menunjukkan penggunaan operator == sebagai perbandingan:

public useEnums2(SomeEnum a) {
    if (a == SomeEnum.SOME_ENUM_VALUE) {
        ...
    }
}
Salin selepas log masuk

Yang daripada pengendali ini harus diutamakan untuk membandingkan ahli enum?

Persamaan Teknikal dan Null Keselamatan

Menariknya, kedua-dua pendekatan adalah betul secara teknikal. Kod sumber untuk .equals() dalam Java enums mendedahkan bahawa ia hanya mewakilkan kepada ==. Walau bagaimanapun, terdapat perbezaan yang ketara: == juga menyediakan keselamatan nol.

Dengan menggunakan ==, anda boleh melindungi daripada rujukan null berpotensi dalam perbandingan ahli enum. Aspek ini menjadi sangat relevan apabila bekerja dengan kod yang diwarisi daripada sistem warisan atau pustaka pihak ketiga yang nilai nol sekali-sekala mungkin berlaku.

Pengesyoran

Memandangkan kelebihan halus null keselamatan dan fakta bahawa kedua-dua == dan .equals() pada asasnya melakukan perbandingan yang sama, secara amnya dinasihatkan untuk menggunakan == apabila membandingkan ahli enum Java. Pengesyoran ini sejajar dengan keutamaan peribadi pengarang juga.

Atas ialah kandungan terperinci Membandingkan Ahli Java Enum: Sekiranya Anda Menggunakan == atau sama dengan()?. 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