Operadores em Java. [Resolvido]

2 respostas
L

Srs, boa tarde!

Eu estou com uma dúvida relacionada aos tipos primitivos Byte e Short. Sabemos que na hierarquia dos operadores um short “comporta” um valor de Byte, como nesse exemplo:

class Teste {
	static public void main(String... j) {
		byte vByte = 1;
		short vShort = vByte;
        }
}

Minha dúvida é por que no exemplo abaixo, short não aceita o tipo de atribuição sendo que o limite de valore de short é respeitado.

class Teste {
	static public void main(String... j) {
		byte vByte = 1;
		short vShort2 = vByte + 1;
	}
}

Agradeço antecipadamente.

2 Respostas

L

O compilador interpreta como padrão a soma que envolva um não-literal (no caso, vByte) como um “int”. Para resolver, utilize um cast na linha 4:

short vShort2 = (short) (vByte+1)

Se você quiser se aprofundar, dê uma olhada no site: http://stackoverflow.com/questions/477750/primitive-type-short-casting-in-java

L

lebarifouse, bom dia!

Agora ficou claro. Agradeço o seu retorno.

Criado 13 de setembro de 2015
Ultima resposta 17 de set. de 2015
Respostas 2
Participantes 2