次の例では
int i = -128;
Integer i2 = (Integer) i; // compiles
Integer i3 = (Integer) -128; /*** Doesn't compile ***/
Integer i4 = (Integer) (int) -128; // compiles
Integer i4 = -128; // compiles
Integer i5 = (int) -128; // compiles
Integer i6 = (Integer) (-128); // compiles
Integer i7 = (Integer) 0-128; // compiles
私はキャストすることはできません-128し(Integer)、私はキャストすることができます(int) -128。
私はいつもタイプだと思って-128いて、intそれを使ったキャスト(int)は冗長であるはずです。
の行のエラーi3は
cannot find symbol variable Integer
私はJava 6 update 29とJava 7 update 1でこれを試しました。
編集:の+128代わりにと同じ動作をします-128。単項演算子と二項演算子の混同のようです。
Integer i3 = (Integer) (-128);従います。
Expression expectedどこにあるのでしょうかInteger。
Integer i = -128;ただし、これはコンパイルする必要があります。