Duvida de cast em tipos basicos

[code]public class Cast {
public static void main(String[] args) {
byte a;
int inteiroNormal = 50;
final int inteiroFinal = 100;

	a = inteiroFinal;             //Neste NÃO precisa de cast
	a = (byte)inteiroNormal; //erro aqui. Neste ele exige o cast
}

}[/code]

porque quando declarado como final int não precisa fazer o cast para byte e se for simplesmente int precisa alguém sabe?

Dá uma olhada nisso, me ajudou bastante:

http://www.j2eebrasil.com.br/jsp/tutoriais/tutorial_002_005.jsp?idTutorial=002_005

É bem legal isso de aumentar o valor do int q info_god citou, mais interessante é q o eclipse tbm reclama :slight_smile:

Sempre tive alguns problemas com conversões e casting… o tutorial está bem legal… vou terminar de ler valeu pessoal

Flasoft,

              Atributos finais não podem ter seu resultado final alterado. Com isso, o casting aqui a = inteiroFinal; não é necessario. Modifica o valor de inteiroFinal para um intervalo maior que byte aceite e veja se não vai ser necessario o cast. 
 exemplo:

 final int inteiroFinal = 1000;
 Note que vai dar erro de compilador.  

        Deixa eu tentar explicar direito.  A VM identifica que o valor de int sendo final não vai poder ultrapassar a capacidade em bits, não sendo necessario o cast pra byte.        

Att,