Nur überschreiben equals()
, wenn es Sinn macht. Aber offensichtlich, wenn Sie equals()
überschreiben müssen Sie sicherstellen, dass der hashcode()
Vertrag nicht gebrochen ist, was bedeutet, wenn zwei Objekte gleich sind, müssen sie den gleichen Hash-Code haben.
Wann ist es sinnvoll? Wenn Object.equals()
nicht ausreicht. Das Verfahren kommt grundsätzlich nach unten zu Referenz Identität, also zwei Objekte das gleiche Objekt sind so:
Zahlen sind ein offensichtliches Beispiel, wenn es Sinn macht, weil Integer(10)
andere Intger(10)
soll gleich.
Ein anderes Beispiel könnte sein, wenn Sie Datenbankdatensätze darstellen. Nehmen wir an, Sie haben Student-Datensätze mit einer eindeutigen Ganzzahl-ID, dann könnte ausreichende Implementierung von equals sein, um einfach die ID-Felder zu vergleichen.