Por que uma conversão implícita de restrição é permitida de int para byte, mas não de longa para int?
Considere o trecho de código abaixo:
// automatic casting works for int to byte conversion as integer literal 127
// is in the range for byte
byte b1 = 127; //OK
// automatic casting doesn't work for long to int conversion
// even if long literal is in the range of int.
int i5 = 100L; // NOT OK - compilation error
Existe alguma explicação para esse comportamento?
Por que a conversão explícita não é necessária no caso de int para byte, mas necessária por muito tempo para int?
oComo o Java converte int em byte? pergunta é diferente. Trata-se de um problema na conversão implícita de int para byte quando o valor int está fora do intervalo.