Explication détaillée de la méthode égal(Object) en Java et ses scénarios d'utilisation
En Java, la méthode égal(Object) est une méthode très importante, qui est utilisée pour comparer si deux objets sont égaux. Dans cet article, nous expliquerons en détail les scénarios d'utilisation et les principes de la méthode equals(Object), et présenterons quelques techniques d'utilisation courantes.
1. Le principe de la méthode equals(Object)
En Java, toutes les classes héritent de la classe Object, et la méthode equals(Object) dans la classe Object est une implémentation par défaut. La méthode equals(Object) de la classe Object compare en fait si les références de deux objets sont égales, c'est-à-dire si les deux objets sont le même objet. L'implémentation spécifique est la suivante :
public boolean equals(Object obj) {
return (this == obj);
}
Dans de nombreux cas, ce que nous devons comparer est de savoir si le contenu de deux objets est égal, pas seulement des références. Par conséquent, nous devons remplacer la méthode equals(Object) dans une classe personnalisée pour répondre à nos besoins.
2. Scénarios d'utilisation de la méthode equals(Object)
Lorsque nous devons comparer les valeurs de deux types de base, nous pouvons utiliser directement l'opérateur ==. Par exemple, comparer deux entiers pour l'égalité :
int a = 10 ;
int b = 10 ;
if (a == b) {
System.out.println("a和b相等");
}
Quand nous avons besoin pour comparer Lorsque vous utilisez deux valeurs de type référence, la méthode equals(Object) doit être utilisée. Par exemple, comparez deux chaînes pour l'égalité :
String str1 = "Hello";
String str2 = "Hello"
if (str1.equals(str2)) {
System.out.println("str1和str2相等");
}
Lorsque nous devons comparer des objets d'une classe personnalisée, nous devons remplacer la méthode equals(Object) dans la classe pour comparer le contenu des objets. Par exemple, comparez deux objets Person pour l'égalité :
public class Person {
private String name; private int age; // 构造方法和其他方法省略 @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Person person = (Person) obj; return age == person.age && Objects.equals(name, person.name); }
}
Person person1 = new Person("Zhang San", 20);
Person person2 = new Person("Zhang San", 20) ;
if (person1.equals(person2)) {
System.out.println("person1和person2相等");
}
3. Conseils pour utiliser la méthode Equals(Object)
lors de la réécriture de Equals( Object) Lorsque vous devez suivre la convention de la méthode equals(Object), c'est-à-dire que les conditions suivantes sont remplies :
Lors de la comparaison du contenu des objets, nous pouvons utiliser la méthode Objects.equals fournie par Java, qui gérera automatiquement le cas des valeurs nulles. Par exemple, pour comparer deux chaînes pour l'égalité, vous pouvez utiliser le code suivant :
String str1 = "Bonjour";
String str2 = "Bonjour";
if (Objects.equals(str1, str2)) {
System.out.println("str1和str2相等");
}
NullPointerException peut être évitée en utilisant la méthode Objects.equals.
4. Résumé
Cet article présente en détail la méthode equals(Object) en Java et ses scénarios d'utilisation. Dans le développement réel, nous avons souvent besoin de comparer si le contenu de deux objets est égal, il est donc très important de remplacer la méthode equals(Object). En suivant la convention de la méthode equals(Object) et en utilisant la méthode Objects.equals, nous pouvons comparer le contenu des objets avec plus de précision et de sécurité. J'espère que cet article vous aidera à mieux comprendre la méthode equals(Object) et ses scénarios d'utilisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!