Kaedah objek Java: equals(Object) Bagaimana untuk melaksanakan perbandingan kesamaan objek?
Di Java, kaedah equals(Object) ialah salah satu kaedah utama yang digunakan untuk membandingkan sama ada dua objek adalah sama. Secara lalai, kaedah equals diwarisi daripada kelas Objek dan digunakan untuk membandingkan sama ada rujukan dua objek menghala ke alamat memori yang sama. Walau bagaimanapun, dalam aplikasi, kita selalunya perlu menentukan sama ada objek adalah sama berdasarkan sifatnya, yang memerlukan mengatasi kaedah sama untuk melaksanakan perbandingan kesamaan tersuai.
Untuk mencapai perbandingan kesamaan objek, kita perlu mengikut prinsip berikut:
Untuk melaksanakan perbandingan kesaksamaan tersuai, kita secara amnya perlu mengatasi kaedah equals dan ikuti langkah berikut untuk melaksanakannya:
Berikut ialah contoh pelaksanaan perbandingan kesamaan objek:
public class Person { private String name; private int age; // 构造函数 // 省略getter和setter方法 @Override public boolean equals(Object obj) { if (this == obj) { // 对象引用相同 return true; } if (obj == null || getClass() != obj.getClass()) { // 对象类型不同或为空 return false; } Person person = (Person) obj; // 强制类型转换 // 逐个比较属性 return age == person.age && Objects.equals(name, person.name); } }
Dalam contoh di atas, kami mengatasi kaedah equals untuk membandingkan objek untuk kesamaan berdasarkan kesamaan nama dan atribut umur. Perlu diingatkan bahawa kami menggunakan kaedah Objects.equals untuk membandingkan atribut nama, yang akan mengendalikan situasi nol dan mengelakkan NullPointerException.
Untuk mengekalkan konsistensi, selalunya perlu mengatasi kaedah Kod cincang supaya objek yang sama mengembalikan kod cincang yang sama. Ini kerana di Jawa, perbandingan kesamaan objek biasanya bergantung pada nilai pulangan kaedah hashCode.
Ringkasnya, mencapai perbandingan kesamaan objek ialah tugas penting dalam pengaturcaraan Java. Dengan mengatasi kaedah equals, kita boleh menentukan sama ada dua objek adalah sama berdasarkan sifat objek, dan mesti mematuhi prinsip perbandingan kesamaan. Apabila mengatasi kaedah equals, kita juga harus mengatasi kaedah hashCode untuk memastikan konsistensi. Dengan melaksanakan perbandingan kesaksamaan dengan betul, kami boleh mengurus objek dengan lebih baik dan menyimpannya dengan betul dalam koleksi sebagai kunci atau nilai apabila diperlukan.
Atas ialah kandungan terperinci kaedah sama di Jawa: Bagaimana untuk membandingkan objek untuk kesamaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!