Java += 操做符實質?

我以前覺得: i += j 等同於 i = i + j; 但假設:java

int i = 5;
long j = 8;

這時 i = i + j 不能編譯,但i += j 卻能夠編譯。這說明二者是有差別的。spa

對複合賦值表達式來講,E1 op= E2 (諸如 i += j; i -= j 等等),實際上是等同於 E1 = (T)((E1) op (E2)),其中,T是E1這個元素的類型。code

舉例來講,以下的代碼編譯

short x = 3;
x += 4.6;

等同於class

short x = 3;
x = (short)(x + 4.6);
相關文章
相關標籤/搜索