Maison >Java >javaDidacticiel >Comment remplacer correctement la méthode equals() en Java pour les objets avec des champs chaîne et entiers ?
Remplacer la méthode Equals en Java
En Java, la méthode Equals est un outil fondamental pour comparer des objets pour l'égalité. Lorsque vous remplacez la méthode equals dans une classe personnalisée, vous pouvez définir des critères spécifiques pour déterminer si deux objets de cette classe sont équivalents.
Comprendre le problème
Considérez une Classe de personne avec des champs pour le nom et l'âge. Pour comparer deux objets Person pour vérifier leur égalité, vous pouvez remplacer la méthode equals. Cependant, si le champ d'âge est un nombre entier, vous risquez de rencontrer une erreur lorsque vous essayez de le comparer à l'aide de la méthode égale, conçue pour comparer des chaînes.
Solution
Pour résoudre ce problème, vous pouvez utiliser l'opérateur d'égalité == pour comparer des entiers. Voici un exemple de méthode égale remplacée qui gère à la fois les comparaisons de chaînes et d'entiers :
@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
Dans ce code modifié :
Exemple d'utilisation
Voici un exemple de la façon d'utiliser la méthode égale remplacée :
public class Main { public static void main(String[] args) { List<Person> people = new ArrayList<>(); people.add(new Person("John Doe", 30)); people.add(new Person("Jane Doe", 25)); // Check for equality using the overridden equals method boolean equal = people.get(0).equals(people.get(1)); System.out.println(equal); // Output: false } }
Dans cet exemple, la méthode égale correctement détermine que deux objets Personne avec des noms et des âges différents ne sont pas égaux.
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!