Сначала у меня код выглядел так : public boolean equals(Iphone iphone){ if(this == iphone) return true; if(iphone == null || getClass() != iphone.getClass()){ return false; } return this.model == iphone.model && this.color == iphone.color && this.price == iphone.price; } После уже переписал через Object object и валидатор принял задачу. Соответственно вопрос, зачем в equals указывать класс Object и потом делать приведение типов объекта от Object к нашему текущему, а именно к Iphone, если можно сразу написать под нужный нам объект? Данный метод equals все-равно не будет универсальным если мы захотим сравнивать какие то другие объекты, тк поля там будут явно другие. Так же вопрос, если мы задаем equals через alt+ insert автоматически, то в финальном ретурне у нас идет строка: return price == iphone.price && Objects.equals(model,iphone.model) && Objects.equals(color, iphone.color); почему для прайс так же не происывают equals через Objects как для других полей?