Im folgenden Beispiel
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
Ich kann nicht werfen -128mit , (Integer)aber ich warf kann (int) -128.
Ich dachte immer, -128es wäre von intTyp und das Casting mit (int)sollte überflüssig sein.
Der Fehler in der Zeile mit i3ist
cannot find symbol variable Integer
Ich habe dies mit Java 6 Update 29 und Java 7 Update 1 versucht.
EDIT: Sie erhalten das gleiche Verhalten mit +128statt -128. Es scheint eine Verwechslung zwischen unären und binären Operatoren zu sein.
Integer i3 = (Integer) (-128);entspricht aber.
Expression expectedwo der Integerist.
Integer i = -128;Dies sollte jedoch kompiliert werden.