atribuição

2 respostas
W
Amigos,

Porque posso fazer a seguinte situação.

byte b = 3;

b += 7;

 a seguinte  perda de precisão.

byte c = 3;

c = c + 7;

Onde esta a explicação para isso.

Obrigado.

2 Respostas

Deh

você ganha um “Type mismatch: cannot convert from int to byte”

byte c = 3;
c = (byte) (c + 7);

Para dar certo você vai precisar de um cast!

Agora, o porque da forma “b += 7” da certo, eu não sei explicar…

R

Quando vc dá

byte b;
b += 7;

vc não recebe type mismatch pq 7 cabe numa variável do tipo byte.

Qdo vc 

byte c = 7;

c = c + 3;

A segunda linha gerou uma expressão aritmética, que em Java, sempre é int, e conseqüentemente, não cabe num byte, e o compilador reclama o type mismatch.

Mas venhamos, vc não quer que o compilador seja tão inteligente a ponto de gerar rotinas para descobrir o valor da variável (algs. vezes, em tempo de execução), pra saber se vai dar type mismatch, não é verdade?

Criado 2 de janeiro de 2007
Ultima resposta 2 de jan. de 2007
Respostas 2
Participantes 3