2017-08-15 1 views
0

私は、デフォルトの番号でJavaでの整数として格納されていることを知っているが、Javaのショートハンド演算子は通常の演算子とどのように異なるのですか?

byte x = 10; 
x += 10; 

+0

+ =を実行すると、複合文になり、Compilerは内部的にそれをキャストします。最初のケースでは、コンパイラが直接ステートメントであるので、コンパイラのストレートな方法で叫んだところ:) –

+0

ありがとう@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ –

答えて

2

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; 

と結果コンパイラは幸せです。

関連する問題