可能重复:
Java += operator
我们可以将值添加到任何变量中b+=8
或b=b+8
两者都会将8
的值添加到变量b
中。我在采访中得到了这个问题,那是
byte b=7;
b=b+8; //compile error
输出什么,我勾选了compile time error
,因为添加byte
和int
将是int
(我相信),因为我们正在尝试存储{{ 1}}值转换为int
。但是,当我自己尝试下面的代码时
byte
然后,上面的代码编译并完美运行,没有任何错误,并返回byte b=7;
b+=8; //OK
。现在,我的问题是为什么以及如何?我的意思是,为什么它不需要显式铸造?
答案 0 :(得分:1)
这是b = b + 8
和b += 8
编译器自动投射。