Как работает equals java

Аватар пользователя Иван Полежаев
Иван Полежаев
13 апреля 2023

Метод equals() в Java используется для проверки равенства двух объектов. Он наследуется из класса Object и может быть переопределен в пользовательских классах.

Метод equals() проверяет, являются ли два объекта равными. По умолчанию метод equals() сравнивает два объекта по ссылке, то есть возвращает true только в том случае, если ссылки указывают на один и тот же объект.


Чтобы сравнить объекты на основе их значений, необходимо переопределить метод equals() в пользовательском классе. При переопределении метода equals() необходимо учитывать следующие рекомендации:

  • Сравнивать переданный объект с текущим объектом через оператор == и вернуть true, если ссылки указывают на один и тот же объект.
  • Проверить, является ли переданный объект null, и вернуть false, если переданный объект равен null
  • Проверить, является ли класс переданного объекта таким же классом, как и текущий объект, используя оператор instanceof
  • Привести переданный объект к типу текущего класса и сравнить поля текущего объекта с полями переданного объекта. Для сравнения строк можно использовать метод equals()

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

public class MyClass {
    private int value;

    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }

        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }

        MyClass myClass = (MyClass) obj;

        return value == myClass.value;
    }
}

В данном примере метод equals() сравнивает два объекта класса MyClass по полю value. Если значения полей равны, метод возвращает true, иначе - false

1 0

Похожие вопросы

1
ответ
1
ответ
1
ответ