JAVA: equals()

Kontrakt

  1.  Null-Akzeptanz

x ungleich null => x.equals(null) = false

2. Reflexivität

x ungleich null => x.equals(x) = true

3. Symmetrie

x.equals(y) = true <=> y.equals(x) = true

4. Transitivität

x.equals(y) = true && y.equals(z) = true => x.equals(z) = true

5. Konsistenz

x,y ungleich null => x.equals(y) konstant

Prüfungen

  1. Keine Null-Referenzen
  2. keine identische Objekte
  3. Vergleich von Objekten gleichen Typs (a.getClass()==b.getClass())

Hilfsklassen

EqualsUtils.nullSafeEquals(a.getAtt(),b.getAtt());

Objects.equal(ob1, ob2)

Regeln bei Vererbung

Nutze in equals() niemals direkte Zugriffe auf Attribute der Basisklassen.

if (!base.equals(other){ return false;}

 

 

Schreibe einen Kommentar