En el siguiente ejemplo
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
No puedo fundido -128
con (Integer)
pero puedo fundido (int) -128
.
Siempre pensé que -128
era de int
tipo y lanzarlo (int)
debería ser redundante.
El error en la línea con i3
es
cannot find symbol variable Integer
Intenté esto con Java 6 actualización 29 y Java 7 actualización 1.
EDITAR: Obtiene el mismo comportamiento con en +128
lugar de -128
. Parece ser una confusión entre operadores unarios y binarios.
Integer i3 = (Integer) (-128);
cumple sin embargo.
Expression expected
donde Integer
está.
Integer i = -128;
esto debería compilar, sin embargo.