0
私は、デフォルトの番号でJavaでの整数として格納されていることを知っているが、Javaのショートハンド演算子は通常の演算子とどのように異なるのですか?
byte x = 10;
x += 10;
が
私は、デフォルトの番号でJavaでの整数として格納されていることを知っているが、Javaのショートハンド演算子は通常の演算子とどのように異なるのですか?
byte x = 10;
x += 10;
が
JLSを微コンパイルしている間に
byte x = 10;
x = x + 10;
がエラーを与えているあなた
ための答えを持っています形態E1の化合物割り当て式op = E2はE1 =(T)((E1)op(E2))と等価であり、ここでTはE1が1回だけ評価されることを除いてE1のタイプである。その理由は、
x = (byte) x + 10;
に2番目の文のequlasあなたのケースではそう
short x = 3; x = (short)(x + 4.6);
:と等価であるため、値7を有するXで
short x = 3;
x += 4.6;
と結果コンパイラは幸せです。
+ =を実行すると、複合文になり、Compilerは内部的にそれをキャストします。最初のケースでは、コンパイラが直接ステートメントであるので、コンパイラのストレートな方法で叫んだところ:) –
ありがとう@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ –