Rumah >Java >javaTutorial >Bagaimanakah Saya Mengatasi Kaedah `equals` dengan betul untuk Perbandingan Objek di Jawa?

Bagaimanakah Saya Mengatasi Kaedah `equals` dengan betul untuk Perbandingan Objek di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 18:32:09802semak imbas

How Do I Correctly Override the `equals` Method for Object Comparison in Java?

Memahami Kesamaan Objek dalam Java

Untuk membandingkan kesamaan dua objek di Jawa, seseorang sering menggunakan kaedah sama. Dalam senario yang diterangkan, matlamatnya adalah untuk mengatasi kaedah sama untuk kelas Orang dengan medan nama dan umur, untuk memudahkan perbandingan antara objek Orang.

Pelaksanaan awal yang dibentangkan menggunakan kaedah sama untuk medan umur, yang adalah jenis Integer. Walau bagaimanapun, seperti yang dinyatakan, kaedah equals direka khusus untuk membandingkan objek String.

Penyelesaian: Membandingkan Medan Integer

Untuk membandingkan medan Integer, adalah disyorkan untuk menggunakan operator == dan bukannya kaedah sama. Operator == membandingkan nilai jenis data primitif secara langsung, dan bukannya menggunakan kaedah equals.

Melaksanakan Equals dengan Betul

Pelaksanaan yang betul bagi kaedah equals untuk kelas Orang hendaklah seperti berikut:

@Override
public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }

    if (obj.getClass() != this.getClass()) {
        return false;
    }

    final People other = (People) obj;
    if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
        return false;
    }

    if (this.age != other.age) {
        return false;
    }

    return true;
}

Dalam ini pelaksanaan:

  • Ia mula-mula menyemak sama ada objek yang diluluskan adalah nol, kelas berbeza atau mempunyai medan nama nol.
  • Jika semakan itu lulus, ia menggunakan operator == untuk membandingkan medan umur.
  • Ia kembali benar jika semua perbandingan dinilai kepada benar, sebaliknya palsu.

Atas ialah kandungan terperinci Bagaimanakah Saya Mengatasi Kaedah `equals` dengan betul untuk Perbandingan Objek di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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