java涓璭quals()鏂规硶鎬庝箞浣跨敤
鍦↗ava涓紝equals() 鏂规硶鐢ㄤ簬姣旇緝涓や釜瀵硅薄鏄惁鐩哥瓑銆俥quals() 鏂规硶鏄疧bject绫荤殑鏂规硶锛屾墍鏈夌殑绫婚兘缁ф壙鑷狾bject绫伙紝鍥犳鎵€鏈夌殑绫婚兘鍙互璋冪敤equals() 鏂规硶銆俥quals() 鏂规硶鐨勯粯璁ゅ疄鐜版槸姣旇緝涓や釜瀵硅薄鐨勫紩鐢ㄦ槸鍚︾浉绛夛紝鍗冲垽鏂袱涓璞℃槸鍚︽槸鍚屼竴涓璞°€?/p>
濡傛灉鎴戜滑鎯宠姣旇緝涓や釜瀵硅薄鐨勫唴瀹规槸鍚︾浉绛夛紝灏遍渶瑕侀噸鍐檈quals() 鏂规硶銆備竴鑸儏鍐典笅锛屾垜浠渶瑕佸湪鑷畾涔夌被涓噸鍐檈quals() 鏂规硶锛屼互瀹炵幇鑷畾涔夌殑瀵硅薄姣旇緝閫昏緫銆?/p>
閲嶅啓equals() 鏂规硶鐨勪竴鑸楠ゅ涓嬶細
- 鍒ゆ柇鍙傛暟鏄惁涓簄ull锛屽鏋滄槸null锛屽垯杩斿洖false銆?/li>
- 鍒ゆ柇瀵硅薄鏄惁涓哄悓涓€涓紩鐢紝濡傛灉鏄悓涓€涓紩鐢紝鍒欒繑鍥瀟rue銆?/li>
- 鍒ゆ柇瀵硅薄鏄惁涓哄悓涓€绫诲瀷锛屽鏋滀笉鏄悓涓€绫诲瀷锛屽垯杩斿洖false銆?/li>
- 灏嗗弬鏁板璞¤浆鎹负褰撳墠绫荤殑瀵硅薄銆?/li>
- 姣旇緝瀵硅薄鐨勬瘡涓睘鎬ф槸鍚︾浉绛夛紝濡傛灉鎵€鏈夊睘鎬ч兘鐩哥瓑锛屽垯杩斿洖true锛屽惁鍒欒繑鍥瀎alse銆?/li>
涓嬮潰鏄竴涓ず渚嬩唬鐮侊紝婕旂ず浜嗗浣曢噸鍐檈quals() 鏂规硶锛?/p>
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Person person = (Person) obj;
if (age != person.age) {
return false;
}
return name.equals(person.name);
}
public static void main(String[] args) {
Person person1 = new Person("Alice", 30);
Person person2 = new Person("Alice", 30);
System.out.println(person1.equals(person2)); // 杈撳嚭涓簍rue
}
}
鍦ㄤ笂闈㈢殑浠g爜涓紝鎴戜滑閲嶅啓浜哖erson绫荤殑equals() 鏂规硶锛屾瘮杈冧簡Person瀵硅薄鐨刵ame鍜宎ge灞炴€ф槸鍚︾浉绛夈€傚湪main鏂规硶涓紝鎴戜滑鍒涘缓浜嗕袱涓狿erson瀵硅薄锛屽畠浠殑name鍜宎ge灞炴€х浉绛夛紝鍥犳璋冪敤equals() 鏂规硶杩斿洖true銆?/p>