Java: Почему я не могу преобразовать int в Long

Все числа в 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. Есть мысли по этому поводу?

13
задан tung 5 April 2018 в 17:28
поделиться