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 -128
mit , (Integer)
aber ich warf kann (int) -128
.
Ich dachte immer, -128
es wäre von int
Typ und das Casting mit (int)
sollte überflüssig sein.
Der Fehler in der Zeile mit i3
ist
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 +128
statt -128
. Es scheint eine Verwechslung zwischen unären und binären Operatoren zu sein.
Integer i3 = (Integer) (-128);
entspricht aber.
Expression expected
wo der Integer
ist.
Integer i = -128;
Dies sollte jedoch kompiliert werden.