Рассмотрим следующий фрагмент кода:
class TypeCast{
public static void main(String[] args){
byte by = 4; //compiler casts int literal to byte
doCasting(4); //Compilation Error: external type casting is required. WHY ?
}
public static void doCasting(byte by){
}
}
Я думаю, что над фрагментом кода довольно понятно. В то время как int
литеральное присвоение типа byte
компилятор автоматически выполняет автоматический запуск. То же самое не происходит, когда мы вызываем метод, принимающий параметр byte
с int literal. Почему?