W poniższym przykładzie
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
Nie mogę rzucić -128z (Integer)ale mogę rzucić (int) -128.
Zawsze myślałem, że -128to inttyp i rzucanie go (int)powinno być zbędne.
Błąd w wierszu z i3to
cannot find symbol variable Integer
Próbowałem tego z aktualizacją Java 6 29 i aktualizacją Java 7 1.
EDYCJA: Otrzymujesz to samo zachowanie z +128zamiast -128. Wydaje się, że jest to zamieszanie między operatorami jednoargumentowymi i binarnymi.
Integer i3 = (Integer) (-128);chociaż się zgadza.
Expression expectedtam, gdzie Integerjest.
Integer i = -128;to powinno się jednak skompilować.