Bonjour à tous,
Il y'a quelque chose que je ne comprends pas dans le langage java, qui est en rapport avec les wrapper classes.
Prenons un exemple :
1 2
| Integer i1 = new Integer("20");
Integer i2 = new Integer("20"); |
A ce stade nous avons deux objets wrapper classes qui permet d'utiliser la méthode .equals
Lorsqu'on fait :
if (i1!=i2){Afficher "pasdecoucou"}else{ Afficher "coucou" }
ça affiche "pascoucou" ce qui est normal car même si ce sont deux objets qui ont la même valeur, ce sont quand même deux objets différents dans le "heap".
Par contre si je fais ça :
if (i1==i2){Afficher "cestegale"}else{ Afficher "cestpasegale" }
Dans ce cas là, j'ai bien "cestegale" qui saffiche.
Le .equals fonctionne aussi, mais cela est normal puisqu'il compare les valeurs et non l'objet lui même
if (i1.equals(i2)){Afficher "EGALE"}else{ Afficher "NONEGALE" }
Je ne comprends pas ... pouvez vous m'expliquer ?
Merci d'avance.
Partager