我的代码是
class Bauua { public static void main(String...args) { byte a = 10; byte b = 20; byte c = a+b; System.out.println(c); } }
编译时出现以下错误
error: possible loss of precision byte c= a+b; required: byte found: int
但是,当我使用它byte c=(byte)(a+b);代替byte c = a+b;它成功编译时,那么我的问题是,当所有3个变量(即a,b和c)都是字节数据类型时,为什么需要强制转换?
byte c=(byte)(a+b);
byte c = a+b;
byte c= a+b;,+此处的运算符将返回int,这就是您需要使用强制转换的原因。
byte c= a+b;
+
int