Dans l'exemple suivant
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
Je ne peux pas lancer -128
avec (Integer)
mais je peux lancer (int) -128
.
J'ai toujours pensé que -128
c'était du int
type et le lancer avec (int)
devrait être redondant.
L'erreur sur la ligne avec i3
est
cannot find symbol variable Integer
J'ai essayé cela avec la mise à jour 29 de Java 6 et la mise à jour 1 de Java 7.
EDIT: Vous obtenez le même comportement avec +128
au lieu de -128
. Il semble y avoir confusion entre les opérateurs unaires et binaires.
Integer i3 = (Integer) (-128);
conforme cependant.
Expression expected
où le Integer
est.
Integer i = -128;
cela devrait cependant compiler.