Dúvida Fazer Cast - De int Para short

1 resposta
A

Oi gente, por favor vejam o meu código abaixo, gostaria de saber o porquê que tenho de fazer cast também de rangeDe5NumeroNoMaximo sendo que o tipo deste atributo é short já…

//cast de int pra short public static void main(String[] args) { int rangeDe10NumerosNoMaximo = [telefone removido]; short rangeDe5NumeroNoMaximo = 12345; short resultado = (short) (rangeDe5NumeroNoMaximo + (short) (rangeDe10NumerosNoMaximo)); System.out.println(resultado); }

1 Resposta

davidbuzatto

Pq o resultado de uma operação que envolve valores inteiros com precisão menor que a do long (64 bits) é sempre um int.
Vc pode somar dois shorts, mas na hora que for atribuir o resultado a um terceiro short, mesmo que o valor da soma esteja no intervalo, o resultado retornado é um int.

short s1 = 1;
short s2 = 2;

// erro! s1 + s2 retorna um int
short s3 = s1 + s2; 

// cast de int p/ short.
short s4 = ( short ) ( s1 + s2 );

[]´s

Criado 7 de agosto de 2010
Ultima resposta 7 de ago. de 2010
Respostas 1
Participantes 2