Voici un résumé des méthodes d'égalité à retenir lorsque vous étudiez Java Silver.
La méthode equals est une méthode définie dans la ** classe java.lang.Object **.
a.equals(b);
Vérifiez si l'instance stockée dans la variable a et l'instance stockée dans la variable b ont ** la même valeur ** ** (équivalence) **
String a = "abc";
String b = new String("abc");
System.out.println(a == b); //false est retourné
System.out.println(a.intern() == b.intern()); //renvoie vrai
En effet, la méthode interne est une méthode permettant de rechercher et de réutiliser une chaîne en mémoire, y compris un pool de constantes. Un pool de constantes signifie que lorsqu'un ** caractère littéral ** réapparaît dans le programme, ** les références à la même instance de chaîne créée dans le passé sont réutilisées **.
La méthode equals est définie dans la classe Object, donc chaque classe l'a. Cependant, seule la méthode equals de la ** classe Object ** est définie pour déterminer ** l'identité ** plutôt que l'équivalence. La définition est la suivante.
public boolean equals(Object obj){
return (this == obj);
}
Puisque la ** méthode de confirmation d'équivalence ** diffère pour chaque classe, on suppose que la méthode equals est ** remplacée et utilisée **.
Remplacez la méthode définie dans la ** classe java.lang.Object ** comme ** méthode par défaut ** dans ** interface ** → ** Erreur de compilation **
Par conséquent, lors de la substitution de la méthode equals, elle doit être remplacée par ** class **.
** * Liste des méthodes définies dans la classe java.lang.Object **
Passer null à la méthode equals ne donne pas lieu à une NullPointerException
Document officiel
x.equals (null) renvoie false.
De <Exemple de comparaison de caractères nuls ou vides avec Java est égal à>
Quand a.equals (b), si a est nul, une NullPointerException se produira. Lorsque a.equals (b), si a n'est pas nul et b est nul, false est renvoyé. Objects.equals (a, b) ajouté dans Java7 ne génère pas d'exception NullPointerException même si a et b sont nuls.
Exemple de comparaison de caractères nuls ou vides avec Java est égal à
Recommended Posts