Heim >Java >javaLernprogramm >Wie überschreibe ich die Methode „equals' für den Objektvergleich in Java korrekt?

Wie überschreibe ich die Methode „equals' für den Objektvergleich in Java korrekt?

Linda Hamilton
Linda HamiltonOriginal
2024-12-22 18:32:09801Durchsuche

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

Objektgleichheit in Java verstehen

Um die Gleichheit zweier Objekte in Java zu vergleichen, verwendet man häufig die Methode „equals“. Im beschriebenen Szenario besteht das Ziel darin, die Methode „equals“ für eine People-Klasse mit den Feldern „Name“ und „Alter“ zu überschreiben, um Vergleiche zwischen People-Objekten zu erleichtern.

Die vorgestellte Erstimplementierung verwendete die Methode „equals“ für das Feld „Alter“. ist vom Typ Integer. Wie bereits erwähnt, ist die Methode „equals“ jedoch speziell für den Vergleich von String-Objekten konzipiert.

Lösung: Ganzzahlfelder vergleichen

Zum Vergleichen von Ganzzahlfeldern wird die Verwendung empfohlen den Operator == anstelle der Methode equal. Der ==-Operator vergleicht die Werte der primitiven Datentypen direkt, anstatt die Equals-Methode aufzurufen.

Equals korrekt implementieren

Die korrekte Implementierung der Equals-Methode für Die People-Klasse sollte wie folgt aussehen:

@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;
}

In diesem Implementierung:

  • Es prüft zunächst, ob das übergebene Objekt null ist, eine andere Klasse hat oder ein Null-Namensfeld hat.
  • Wenn diese Prüfungen erfolgreich sind, wird zum Vergleich der ==-Operator verwendet die Altersfelder.
  • Es gibt „true“ zurück, wenn alle Vergleiche „true“ ergeben, andernfalls „false“.

Das obige ist der detaillierte Inhalt vonWie überschreibe ich die Methode „equals' für den Objektvergleich in Java korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn