recherche
MaisonJavajavaDidacticielComment remplacer correctement la méthode equals() en Java pour les objets avec des champs chaîne et entiers ?

How to Correctly Override the equals() Method in Java for Objects with String and Integer Fields?

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é :

  • Nous effectuons d'abord des vérifications nulles et des vérifications de classe pour nous assurer que nous comparons deux objets Person valides.
  • Nous comparons les champs de nom en utilisant la méthode égale puisqu'ils sont chaînes.
  • Nous utilisons l'opérateur == pour comparer les champs d'âge car ce sont des nombres entiers.

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
    }
}</person>

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.