Heim >Java >javaLernprogramm >Wie überschreibe ich die Methode equal() in Java richtig?
So überschreiben Sie die Methode equal() in Java
Das Überschreiben der Methode equal() ist für die Anpassung des Gleichheitsvergleichsverhaltens für Benutzer unerlässlich Objekte in Java. Hier ist eine umfassende Anleitung, die Ihnen dabei hilft, dies effektiv zu tun:
Das Problem:
Im angegebenen Snippet ist beim Versuch, Altersfelder mit Gleichheit zu vergleichen( ), da es für String-Objekte konzipiert ist. Ganzzahlige Werte erfordern die Verwendung des ==-Operators.
Die Lösung:
Um diesen Fehler zu beheben, verwenden Sie den ==-Operator, um primitive Datentypen wie das Alter zu vergleichen. Der geänderte Codeausschnitt lautet wie folgt:
public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else{ People otherPeople = (People)other; result = name.equals(other.name) && age == other.age; } // end else return result; } // end equals
Zusätzliche Erklärung:
1. Überschreibender Prozess:
2. Nullprüfung:
3. Klassenvergleich:
4. Benutzerdefinierte Vergleichslogik:
Beispiel:
Das bereitgestellte Beispiel überschreibt equal() für die Personenklasse und vergleicht sowohl Name als auch Alter auf Gleichheit:
public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
Fazit:
Das Überschreiben der Methode equal() gibt Ihnen mehr Möglichkeiten um benutzerdefinierte Gleichheitsvergleiche für Ihre benutzerdefinierten Objekte zu definieren. Indem Sie die bereitgestellten Schritte und Beispiele sorgfältig befolgen, können Sie Objekte anhand ihrer spezifischen Eigenschaften effektiv vergleichen.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich die Methode equal() in Java richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!