No exemplo a seguir
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
Eu não pode lançar -128
com (Integer)
mas pode lançar (int) -128
.
Eu sempre pensei que -128
era do int
tipo e lançá-lo com (int)
deve ser redundante.
O erro na linha com i3
é
cannot find symbol variable Integer
Eu tentei isso com o Java 6 atualização 29 e o Java 7 atualização 1.
Edição: Você obtém o mesmo comportamento com em +128
vez de -128
. Parece haver confusão entre operadores unários e binários.
Integer i3 = (Integer) (-128);
cumpre.
Expression expected
onde Integer
está.
Integer i = -128;
isso deve compilar, no entanto.