Все числа в Java должны иметь тип int. {{1 }} Следующая строка допустима в Java> 1.5
Short s = 1; // Will compile to Short s = Short.valueOf((short)1) - thus you can't exceed short max value i.e.
Short s = 4444; // is invalid for autoboxing
Такой же механизм используется для создания экземпляров Integer
и Byte
. Но Лонг работает совершенно иначе. Следующий код дает ошибку времени компиляции
Long l = 10;
Long использует тот же подход для автобокса длинных типов, поэтому
Long l = 10L; //is valid and is translated into Long.valueOf(10L)
я не могу понять, почему int нельзя присвоить переменной Long. Есть мысли по этому поводу?