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 -128
dengan (Integer)
tapi saya dapat menyerahkan (int) -128
.
Saya selalu berpikir -128
adalah int
tipe dan casting itu (int)
harus berlebihan.
Kesalahan pada baris dengan i3
adalah
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 +128
bukannya -128
. Tampaknya ada kebingungan antara operator unary dan binary.
Integer i3 = (Integer) (-128);
meskipun menurut.
Expression expected
mana Integer
itu.
Integer i = -128;
ini harus dikompilasi.