Duvida de cast em tipos basicos

3 respostas
Flasoft
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
	}
}

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

3 Respostas

jaboot

Dá uma olhada nisso, me ajudou bastante:

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

Flasoft

É 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

I

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,

Criado 3 de agosto de 2006
Ultima resposta 3 de ago. de 2006
Respostas 3
Participantes 3