Целочисленные литералы могут быть присвоены байтовым или коротким переменным до тех пор, пока значение литерала находится в диапазоне byte / short .
Но когда длинный литерал присваивается int переменная, ошибка компиляции сообщается, даже если значение long literal находится в диапазоне int .
Что такое logi c, объясняющее это?
Пример,
Приведенная ниже строка успешно скомпилирована
byte byteVar = 100; //works, here 100 is integer literal.
но
int intVar = 100L; // fails, here 100L is long literal
приводит к ошибке времени компиляции.
Может кто-нибудь, пожалуйста, объясните лежащий в основе logi c это движет.