Java字节到int自动转换

时间:2015-05-13 17:32:36

标签: java

我想问你是否知道以下代码会给出强制转换异常。

byte b = 50;
b = b * 2;

Java在求解方程之前将字节转换为int。然后b的定义将给出强制转换异常。

1 个答案:

答案 0 :(得分:4)

为了使代码抛出ClassCastException,代码需要编译。另一方面,此代码不会按原样编译,因为第二行将触发错误:

  

错误:不兼容的类型:从int到byte的可能有损转换

这是因为乘法产生int

如果使用复合赋值替换赋值,则错误将消失:

b *= 2; // This compiles and runs correctly