Equals() [Résolu]

Signaler
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
-
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
-
svp la méthode equals() de la classe object compare les références ou bien le contenu??? et merci d'avance

2 réponses

Messages postés
15932
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 juillet 2020
94
Bonjour,

La méthode equals de la classe Object compare uniquement les références puisqu'un Object n'a aucun contenu...

public boolean equals(Object obj) {
    return (this == obj);
}

Pour prendre en compte le contenu d'un objet il faut que sa classe redéfinisse la méthode equals.
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016

merci KX pour votre répense mais j'ais pas bien compris car j'ai essayer ce code :
public class Equa {
	private Integer t;
	private Integer k;

	public Equa() {
			t=new Integer(12);
			k=new Integer(12);
			System.out.println(t.equals(k));
		}
		public static void main(){
		new Equa();
		}
	}

il s'agit de 2 référence différents mais il retourne true!!!
si vous pouvez m'aidez
Messages postés
15932
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 juillet 2020
94
Ce que tu manipules ce ne sont pas des Object mais des Integer, la méthode equals a été redéfinie dans cette classe...

public boolean equals(Object obj) {
    if (obj instanceof Integer)
        return intValue() == ((Integer) obj).intValue();
    return false;
}
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016

ok merci beaucoup maintenant j'ai compris