Следующий код не компилируется, потому что значение x
является значением long
. Поэтому во второй строке невозможно присвоить длинное значение y
.Почему это предполагается длинным без суффикса
long x = 10;
int y = 2 * x;
Мой вопрос: Первая строка не имеет суффикс L
в переменной типа long
, не следует ли предположить, чтобы иметь тип int
?
Как только он назначен «длинному», он длинный. – Siguza
[Расширение примитивного преобразования] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.2) –