casting - Java 自動 変換 - Javaの+=,-=,*=,/=複合代入演算子はなぜキャストを必要としないのですか?

Java long型変換 / java / operators / variable-assignment / assignment-operator

今日までは、例えばこんな風に思っていました。

i += j;

の近道だった。

i = i + j;

でも、これをやってみると

int i = 5;
long j = 8;

GMachado



Answer #1

[...]次のコードは正しいです:

short x = 3;
x += 4.6;

と等価であるため、結果としてxは値7を持つことになります。

short x = 3;
x = (short)(x + 4.6);