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 -128avec (Integer)mais je peux lancer (int) -128.
J'ai toujours pensé que -128c'était du inttype et le lancer avec (int)devrait être redondant.
L'erreur sur la ligne avec i3est
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 +128au lieu de -128. Il semble y avoir confusion entre les opérateurs unaires et binaires.
Integer i3 = (Integer) (-128);conforme cependant.
Expression expectedoù le Integerest.
Integer i = -128;cela devrait cependant compiler.