Есть такой код
int i = 5;
Double d = Double.valueOf(i);
(на самом деле код такой
int getInt() {
....
}
Double d = Double.valueOf(getInt());
но не суть)
На строку
Double d = Double.valueOf(i);
IDEA пишет
Warning: Unnecessary boxing.
Но какой же он Unnecessary, если мне нужно примитив int привести к объекту Double?
На строку
Double d = i
я уже получаю ошибку
Incompatible types. Required: java.lang.Double Found: int
Это баг анализатора, или все-таки как-то можно присвоение переписать?
Примитивный тип int
нужно сначала привести к примитивному типу double
- после этого boxing
уже не нужен
Double d = (double) i;
У меня IDEA пишет также. Если возможно, то используйте такой вариант:
Integer i = 5;
Double d = getInt().doubleValue();
Либо используйте, как IDEA и предлагает:
Double d = (double) getInt();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно столкнулся с такой проблемой, как невозможность последовательного выполнения большого количества команд в цикле for в комбинации...
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском