Junior — Middle
¿Puedes explicar qué significa el método equals en el contexto de comparación de objetos en Java?
sobes.tech AI
Respuesta de la IA
En Java, el método equals se utiliza para comparar el contenido de dos objetos en busca de igualdad. Por defecto, si no se sobrescribe, el método equals de la clase Object compara referencias, es decir, verifica si ambas variables apuntan al mismo objeto en la memoria.
Para comparar objetos por valor (por ejemplo, por los campos de la clase), es necesario sobrescribir el método equals. Es importante seguir el contrato del método: debe ser reflexivo, simétrico, transitivo, consistente y no igual a null.
Ejemplo de sobrescritura de equals en la clase Person:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // comparación consigo mismo
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
De esta manera, equals permite comparar objetos por su contenido, no por referencia.