Столкнулся с таким вот свойством сложения. У нас есть две переменные:
int x = 1;
long y = 2;
y
нужно прибавить к x
. Если мы воспользуемся простым сложением, то IDE откажется компилировать:
x = x + y; //Incopatible types
Если же мы пользуемся следующей конструкцией:
x += y;
то код обрабатывается корректно.
Ошибка понятна — мы пытаемся запихнуть long
в int
, IDE видит потенциальную ошибку и не даёт скомпилировать. Но почему проходит во втором случае?
var1 op= var2
равносильно var1 = (T)((var1) op (var2))
,
где op - оператор.
Пример:
int x = 2;
double y = 4.6;
Данная строка x += y;
равносильна нижней:
x = (int)(x + y);
Документация: 15.26.2. Compound Assignment Operators
Добрый деньКак сделать типичный Logo quiz app, чтобы при нажатий на буквы textview заполнялся и проверял ответ
Не могу разобраться с java jax-rs responseЕсть вот такой вот код:
Всем доброго дня, в моей программе хочу реализовать возможность быстрого запуска определённых программ, тыкнул по кнопочке раз и все программы...
Пытаюсь заполнить трёхмерный массив случайными числами от 0 до 1: