<分区>
考虑以下代码:
class Converter {
public static void main(String args[]) {
byte num = 1;
num = num * 2.5;
System.out.println("Result is: " + num);
}
}
编译器抛出以下错误:
error: incompatible types: possible lossy conversion from double to the byte at line 1
如果我更改 main()
方法的第二行并使用 *=
速记运算符:
class Converter {
public static void main(String args[]) {
byte num = 1;
num *= 2.5;
System.out.println("Result is: " + num);
}
}
代码成功编译并运行并输出:
Result is: 2
为什么 *=
速记运算符的行为与完整表达式 num = num * 2.5
不同?