¿Por qué se permite una conversión de reducción implícita de int a byte pero no de largo a int?
Considere el siguiente fragmento de código:
// 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
¿Hay alguna explicación para tal comportamiento?
¿Por qué no es necesaria la conversión explícita en el caso de int a byte, sino que se necesita durante mucho tiempo a int?
los¿Cómo convierte Java int en byte? La pregunta es diferente. Se trata de un problema en la conversión implícita de int a byte cuando el valor int está fuera de rango.