Membro desde: 03/07/2003 11:32:16
Mensagens: 49
Offline
Esta dúvida eu não poderia deixar de enviar.
Até onde eu sabia, toda literal inteira era tratada como int. Ou seja, o fragmento de código abaixo geraria um erro de cast já que 1,2 e 3 seriam tratados como int e daria um erro de compilação conforme inclusive o Certification Guide pag. 109.
byte b = 1;
short s = 2;
char c = 3;
Só que no meu compilardor Sun 1.4.1 as atribuições são válidas. Agora fica a minha dúvida, caso tenha um questão como vi no simulado:
E eu reponder que roda enquanto uma possível prova destualizada disser que dá erro na atribuição do "z" ?
É possível ter provas destualizadas ? É um bug da minha versão já que ainda não testei com 1.4.2 ?
Está na JLS ? O que devo colocar na prova ?
12/08/2003 21:06:41
Assunto:
rafabene
Thread.start()
Membro desde: 03/07/2003 11:32:16
Mensagens: 49
Offline
Ih Gente foi mal, agora que eu vi que no caso de literais inteiras acontece um "relaxamento" a regra.
12/08/2003 21:32:45
Assunto:
ricardolecheta
GUJ Master
Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline
o compilador irá fazer o cast implicitamente quando for uma "compile time constant", isto é um número(1,2,3...) ou uma variável declarada como final. Se fugir esta regra vc terá que fazer o cast!