标签: java
在Java中,如果我执行以下操作,则会出现错误
byte b = 50; b = b * 2; // Error! Cannot assign an int to a byte!
好的,我理解为什么会收到这个错误。 但是现在如果我b*=2我没有收到任何错误。为什么呢?
b*=2
答案 0 :(得分:1)
因为当您b *= 2;实际执行此操作时*=会将int投放到byte。
b *= 2;
*=
int
byte
答案 1 :(得分:0)
原因很简单,因为缩小=和* =。
有关扩大的详细信息,请参阅here;然后你去here了解那些* =操作的区别。
你,见
b *= 2
作为
b = (byte) ( (b) * 2 )
并且缩小转换在这里不起作用。