Atribuição e conversão.  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
AndrewAguiar
JavaChild

Membro desde: 18/07/2006 10:03:59
Mensagens: 124
Offline

Olá pessoal.

Estou estudando o livra da certificação da Kathy Sierra e cheguei a parte de atribuições:



na linha byte c2 = a2 + b2; o código não compila, da o erro "Type mismatch: cannot convert from int to byte", a pergunta é porque na terceira linha "byte c = 10 + 10;" ele também não da erro, a soma de dois ints não da int também?

Grato a todos.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

O que acontece é que na segunda soma, você tem duas variáveis bytes, que poderiam conter um valor maior do que o que cabe num byte.

Por exemplo:



Portanto, sempre que o java encontra essa situação, o resultado é convertido para int.

Se você sabe que a operação é segura, recorra a um cast:


O mesmo vale para a subtração.

No caso da variável c, você tem dois valores constantes. Assim, o java pode determinar em tempo de compilação que a atribuição é segura.
[WWW]
muldon
JavaTeenager
[Avatar]

Membro desde: 16/05/2006 14:06:03
Mensagens: 174
Offline

exatamente isso ViniGodoy !

Sun Certified Java Programmer 5
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team