Dans un certain projet, la comparaison de valeur égale entre la classe wrapper et le type primitif était erronée, j'ai donc écrit un article pour les nouveaux arrivants.
DemoApp.java
public class DemoApp {
public static void main(String[] args) {
Integer x = 999999;
Integer y = 999999;
int z = 999999;
//De la classe wrapper==Comparaison
if (x == y) {
System.out.println("same");
} else {
System.out.println("other");
}
//Comparaison par la méthode equals de la classe wrapper
if (x.equals(y)) {
System.out.println("same");
} else {
System.out.println("other");
}
//Classe de wrapper et type primitif==Comparaison
if (x == z) {
System.out.println("same");
} else {
System.out.println("other");
}
//Comparaison de la classe wrapper et de la méthode equals de type primitif
if (x.equals(z)) {
System.out.println("same");
} else {
System.out.println("other");
}
}
}
Résultat d'exécution
other
same
same
same
C'est le résultat de la définition d'une classe wrapper avec le même numéro et une variable de type primitif et de la comparaison des valeurs.
Numéro d'article | conditions | résultat |
---|---|---|
1 | Classe wrapper et classe wrapper== Comparaison équivalente |
différent |
2 | Classe wrapper et classe wrapperequals Comparaison de valeur égale par méthode |
le même |
3 | Classe de wrapper et type primitif== Comparaison équivalente |
le même |
4 | Classe de wrapper et type primitifequals Comparaison de valeur égale par méthode |
le même |
==
détermine s'il pointe vers la même instance (objet), mais il est intéressant de noter que la classe wrapper et le type primitif sont également déterminés comme étant ** identiques **.
Recommended Posts