Pada contoh berikut
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
Aku tidak bisa melemparkan -128dengan (Integer)tapi saya dapat menyerahkan (int) -128.
Saya selalu berpikir -128adalah inttipe dan casting itu (int)harus berlebihan.
Kesalahan pada baris dengan i3adalah
cannot find symbol variable Integer
Saya mencoba ini dengan Java 6 update 29 dan Java 7 update 1.
EDIT: Anda mendapatkan perilaku yang sama dengan +128bukannya -128. Tampaknya ada kebingungan antara operator unary dan binary.
Integer i3 = (Integer) (-128);meskipun menurut.
Expression expectedmana Integeritu.
Integer i = -128;ini harus dikompilasi.