Особенности автобоксинга

  • 15
  • Недоступна
Исправь ошибку в методе getValueByIndex(). Читай доп. статью про особенности автобоксинга.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (27)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Сергей31 уровень, Екатеринбург
среда, 14:04
Офигеть подстава со стороны Java машины. Подвох!
Павел35 уровень, Минск
1 ноября 2019, 05:07
классная задача. очень необычная, заставляет пораскинуть мозгами и почитать про автораспаковку, но, не найдя ответа, решил просто перебирая все возможные варианты)
Dmitrii Sulimov30 уровень, Прага
30 октября 2019, 15:42
Есть ли смысл ставить FindBugs в 2019? Вроде уже 3 года как не обновлялся
Павел35 уровень, Минск
1 ноября 2019, 05:08
где и что ставить, можете просветить, пожалуйста?
Dmitrii Sulimov30 уровень, Прага
2 ноября 2019, 00:19
поиск багов в коде https://habrahabr.ru/post/201334/
Павел35 уровень, Минск
2 ноября 2019, 11:58
спасибо)
Даниил41 уровень
15 июня 2019, 20:56
Короче из советов ниже 2 рабочих варианта: 1) привести явно Double к Number и тогда будет приведение обеих сторон к Double, а будет к Integer (так как он более точный чем Number), но этот Number который был получен из Double будет хранить в себе информацию что он является объектом типа Double; 2) переписать через if/else и не будет всяких подводных приведений типов.
Dmytro Zhelezniak41 уровень, Харьков
29 апреля 2019, 17:45
Брюс Эккель в своей книге упоминает об этой особенности тернарного оператора. Всегда приводится к большему типу, даже если этот больший тип никогда не будет возвращаться.
Пётр41 уровень, Москва
22 апреля 2019, 06:55
Нужно делать через утилитарные классы Arrays.asList(array).contains(index)), чтобы работало норм в реальности) А такой нечитаемый код, как говорили в одной из предыдущих лекций, будет выкинут при рефакторинге :D Если решать "в лоб", то нужно обе части того, что возвращает тернарный оператор приводить к общему значению явно, иначе Integer неявно скастуется (автобоксингом) к Double при возвращении. То есть надо и инт и дубль сделать явно (Number) перед возвращением, чтобы они передались as is.
Василий41 уровень, Киев
18 марта 2019, 15:00
Установил FindBugs, как советовали ниже, но он не показывает эту ошибку. Как её воспроизвести?
Vitaly Khan40 уровень
16 января 2019, 04:57
ничего себе! вот это подстава с тернарным оператором! неожиданно. без статьи с объяснениями сам не дойдешь.... приблизительно так же опешил, когда узнал, что i++; и i = i+1; не всегда равнозначны. сколько же таких подводных камней еще будет...
Павел Х.41 уровень, Санкт-Петербург
16 августа 2018, 16:47
Если поставить
(Number) new Double(-1);
как советовали ниже, то мы получим нужный результат. Но при этом IDEA будет утверждать, что такое приведение избыточно и советовать его убрать. Косяк!
Bator32 уровень, Москва
31 мая 2018, 15:18
Еще один подводный камень.