Найти в Дзене
DEBAGanov

Java 1225. Если вы хотите переопределить equals(), какие условия должны выполняться?

1225. Если вы хотите переопределить equals(), какие условия должны выполняться?

Если вы хотите переопределить метод equals() в Java, то должны выполняться следующие условия:

  • Рефлексивность: a.equals(a) всегда должно возвращать true, где a - это объект любого класса.
  • Симметричность: Если a.equals(b) возвращает true, то b.equals(a) также должно возвращать true.
  • Транзитивность: Если a.equals(b) и b.equals(c) возвращают true, то a.equals(c) также должно возвращать true.
  • Консистентность: Повторный вызов a.equals(b) должен возвращать один и тот же результат, при условии, что ни a ни b не изменяются.
  • Неудовлетворение null: a.equals(null) должен всегда возвращать false, где a - это объект любого класса.

Пример переопределения метода equals() для класса Person:

public class Person {
private String name;
private int age;

// Constructors, getters, setters
@Override public boolean equals(Object obj) {
if (obj == this) return true;
if (!(obj instanceof Person)) return false;
Person other = (Person) obj;
return this.name.equals(other.getName()) && this.age == other.getAge();
}
}

Этот метод проверяет, являются ли два объекта Person равными, сравнивая их имя и возраст.

1606 вопрос-ответ по Java

Курс Spring Framework

Tелеграмм каналDEBAGanov

Мое резюмеDEBAGanov