Исправить ошибку. Сравнение объектов

  • 6
  • Недоступна
Сравнение объектов Solution не работает должным образом. Найти ошибку и исправить. Метод main не участвует в тестировании.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (87)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Злой Сашка25 уровень, Санкт-Петербург
31 августа, 10:28
Итак, Амиго, сегодня ты узнаешь о волшебной комбинации alt+insert в Идее. Она позволяет переопределить equals() и hashCode() так, чтоб валидатор был доволен. Для этого нужно нажать alt+insert, выбрать пункт equals() and hashCode() и позволить идее победить валидатор. Не забудь - если нужна проверка значений на null, то не ставь галочки когда тебя спросят про not-null fields! Воевать с машиной должна машина.
dolcom22 уровень, Самара
21 сентября, 19:12
Валидатор - дебил, но ваш коммент - чёткий!
Vitalachka23 уровень, Лондон
8 августа, 21:37
та задача, на которой лопается терпение но сделав более тщательные тесты, оказалось что я сама, хм... виновата 🤣 после валидации сделав ещё раз более тщательные тесты, оказалось, не хм... виновата 🤦‍♀️ короче я слишком хм... не догадливая для этой задачи и совершенно не поняла почему некоторые из моих вариантов не понравились Вале. 1. HashCode код по умолчанию от идеи проходит, лишнего не просит 2. если параметр равен нулю в обоих объектах это true 3. хитрый if из задачи (task2106), написанные для каждого параметра отдельно, это Вале нравится 🤷
Роман Тарнакин35 уровень, Москва
6 августа, 13:12
Валидатор не принимает сгенерированные по всем правилам equals() и hashCode() от Идеи... Дожили.
Azat40 уровень, Казань
28 июня, 18:22
Идея решила сама через alt + ins (???)
Александр28 уровень, Санкт-Петербург
13 июня, 11:19
Самая главная проблема задач на JavaRush - задание зачастую сформулировано непонятно приходится заходить в комменты и читать, что от тебя хотят в этой задаче
Serp201530 уровень, Тольятти
5 июня, 12:44
От перестановки мест слагаемых сумма меняется. if (!(o instanceof Solution) || o == null) - принимает if (o == null || !(o instanceof Solution)) - нет
Igor Chubenko25 уровень, Черкассы
7 июня, 12:33
Спасибо за подсказку. Спалил на этом одну попытку
barracuda28 уровень, Санкт-Петербург
18 мая, 09:40
Кстати, нашел на англоязычном stackoverflow такую вещь: бывает три варианта: 1. o.hashCode(); 2. Objects.hashCode(o); 3. Objects.hash(Object... values); ============================== 1. Object::hashCode() следует использовать, когда требуется хэш одного объекта, и будет выдавать исключение, если объект имеет значение null. 2. Objects.hashCode(Object o) следует использовать, когда вы хотите хэшировать один объект, не бросая исключение, если объект равен нулю. 3. Objects.hash(Object... values) следует использовать в тех случаях, когда вы хотите хэшировать последовательность объектов, например, при определении вашего собственного метода hashcode() и хотите просто получить закодированный хэш для нескольких значений, составляющих идентичность вашего объекта. ============================== PS: :: - квадроточие - это оператор (не функция). Поэтому никаких аргументов он не принимает. У него есть левая часть выражения и правая часть выражения, как у оператора точка, например. Оператор точка позволяет получить значение поля, указанного в правой части выражения, класса который указан в левой части - SomeClass.someField. Так же и квадроточие позволяет получить ссылку на метод, указанный в правой части, класса который указан в левой.
Dmitry27 уровень, Минск
25 августа, 07:25
Спасибо большое
Юрий26 уровень, Москва
15 мая, 11:01
Может валик сломался.
Vladimir Galkov30 уровень, Самара
30 апреля, 19:31
на данный момент задание ... довольно противоречивое, так как каждая IDE имеет генератор правильных equals&hashcode... :) нужно только знать, что их переопределять для коллекционных и хэшируемых объектов обязательно
Anton31 уровень, Санкт-Петербург
26 апреля, 16:38
Валя совсем неадекватный стал