Nell'esempio seguente
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
Non posso lanciare -128con (Integer)ma posso lanciare (int) -128.
Ho sempre pensato che -128fosse di inttipo e lanciarlo con (int)dovrebbe essere ridondante.
L'errore sulla riga con i3è
cannot find symbol variable Integer
L'ho provato con l'aggiornamento 29 di Java 6 e l'aggiornamento 1 di Java 7.
EDIT: ottieni lo stesso comportamento con +128invece di -128. Sembra esserci confusione tra operatori unari e binari.
Integer i3 = (Integer) (-128);conforme però.
Expression expecteddove si Integertrova.
Integer i = -128;questo dovrebbe essere compilato, però.