Почему валидатор принимает реализацию метода compareTo, только в случае использования выражения Integer.compare(int x, int y)? Почему простой вариант не считается правильным решением?
Заранее благодарю.
Александр Колосов
1 уровень
Прошу администрацию разъяснить
Обсуждается
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергеев ВикторMaster
21 марта 2019, 17:01
чтобы обсуждать код надо видеть код.
И простой вариант это какой?
0
Александр Колосов
21 марта 2019, 17:19
Вот такой проходит
Вот такой не проходит
И вот такой не проходит
0
Сергеев ВикторMaster
21 марта 2019, 17:23
да и правда странно, но есть ещё одно отличие это параметр метода.
0
Александр Колосов
21 марта 2019, 17:37
С другим параметром тоже, не проходит.
Значит такова воля валидатора. А то я думал, может здесь сокрыт какой-то принципиальный момент, типа скорости или еще чего-то.
Благодарю за ответ.
0
Vitaly KhanJava Developer в OnolloMaster
28 марта 2019, 07:09
реализовывать compareTo через вычитание - плохой тон.
в нашей задаче так прошло бы.
но в общем случае может возникнуть баг.
в свою очередь Integer.compare - всегда корректно сравнивает любые значения Integer.
+3
Александр Колосов
28 марта 2019, 12:53
Виталий, благодарю за информацию. Не помню, чтобы в уроках на этом акцентировали внимание.
0
Дмитрий
2 октября 2019, 22:04
Я думаю скорость будет выше в случае когда, мы возвращаем разность двух числе, чем когда вызываем метод класса Integer, который сравнивает два, передаваемых инта
0
BorisExpert
30 октября 2019, 11:40
2 вариант это когда у тебя имплементируется от Comparable<>
а 3 вариант это когда уже типизируеш Comparable<MoveEfficiency>
тогда и аргументы метода compareTo будут отличатся
0
Татьяна
13 мая 2020, 13:00
Спасибо за ваш вопрос - благодаря этому рассуждению сразу поняла, почему валидатор не принимает - ато еще долго бы думала - что там в логике неверно, а оказывается не в логике )
+1