Casting de byte é diferente de Casting de int?

2 respostas
joaoorso

Alguém pode por favor, me explicar por que é necessário fazer o casting do byte, e não é necessário fazer o casting do int ?
Ambos não são tipos primitivos da mesma forma ?
Sei que a soma de dois números dá um int, mas aqui estou somando dois bytes … :?:

public class TestByte {
   public static void main(String[] args) {
     int i = 1;
     int i1 = 2;
     int i3 = i + i1;
     System.out.println(i3);       
       
     byte b =1;
     byte b2 = 3;
     byte b3 = b + b2;
     //byte b3 = (byte) (b + b2);
     System.out.println(b3);
   }
   
 }

Obrigado :thumbup:

2 Respostas

D

Quando vc está somando os dos bytes o compilador considera que o resultado da sua soma pode resultar em um int, por isso vc tem que fazer casting quando está usando Short e Byte

Eu creio que isso é para evitar problemas já que é muito mais facil vc romper os limites de um short e de um byte de que um int.

Mauricio_Linhares

Qualquer operação matemática no Java gera pelo menos um int, por isso que você tem que fazer cast pra poder colocar o resultado da soma em um byte.

Criado 3 de junho de 2008
Ultima resposta 3 de jun. de 2008
Respostas 2
Participantes 3