为什么我的类型不匹配:无法从 int 转换为 byte

PSR*_*PSR 3 java byte

class Test
{  
   public static void main(String[] args) 
   { 
     byte t1 = 111;
     byte t2 =11;
     byte t3 = t1+t2;

     System.out.println(t1+t2);   

   }  
}  
Run Code Online (Sandbox Code Playgroud)

在 Eclipse 中它显示错误。cannot convert from int to byte这里的总和是 122,在字节范围内。所以为什么我在这里收到这个错误。

提前致谢...

Alp*_*iya 5

当您对字节进行数学运算时,Java 在这种情况下会扩展(自动类型提升)到字节(隐式向上转换)到整数。所以当你表演时

 byte t3 = t1+t2; //  t1+t2; will be evaluated as integer.
Run Code Online (Sandbox Code Playgroud)

由于 t1+t2 结果比字节宽,因此您需要将其向下转换为字节。

消除编译错误。

 byte t3 = (byte) (t1+t2); // typecast to byte
Run Code Online (Sandbox Code Playgroud)

更多信息请阅读 JLS 5.1.2