Patrón básico

El método equals define una relación de equivalencia sobre objetos diferentes de null:

§  reflexiva

x.equals(x) == true

§  simétrica

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

§  transitiva

x.equals(y) and y.equals(z) => x.equals(z)

§  y

x.equals(null) == false

Por ello es muy típico esta forma de empezar cualquier método equals() que escribamos:

class C {

  @Override

  public boolean equals(Object x) {

    if (x == this)

      return true;

    if (x == null)

      return false;

    if (x instanceof C == false)

      return false;

… y se sigue con lo que es específico de la igualdad de objetos de clase C.

Temas relacionados

63. equals (método) public boolean equals(Object)