Vor ein paar Tagen zeigte mir mein Professor, wie man die equals-Methode und viele mehr implementiert.Ich verstehe diese Implementierung der equals-Methode nicht
Dies ist Codebeispiel aus seiner Methode equals und ich nicht einen Teil verstehen:
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Knjiga other = (Knjiga) obj;
return Objects.equals(isbn,other.isbn);
}
In ersten if-Anweisung er prüfen, ob dieses (aktuelles Objekt) mit dem Objekt obj die gleiche Referenz hat (das ist, was == Operator tut? Vergleichen Sie nur zwei Referenzen)
Und wenn sie die gleiche Referenz bekommen, wird es wahr? Aber wir werden niemals andere Felder prüfen, wie zB isbn und viele mehr, die wir setzen könnten, weil die Methode nie zum Teil kommen wird, wenn diese beiden Objekte die gleiche Referenz haben.
Meiner Ansicht nach ist diese Methode ähnlich doppelt Operator cuz eines dieser beiden nicht zu prüfen Felder, nur Referenz?
Wenn die beiden Referenzen die gleichen sind, dann ist es ein Objekt, nicht zwei. – zeroflagL
Ihr Professor verwendet keine Klammern für seine if-Anweisungen? Beeindruckend. Außerdem: Objects.equals überprüft bereits die Referenzen und Nullwerte. –