Equals()

Résolu
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
- 10 janv. 2016 à 11:22
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016
- 10 janv. 2016 à 13:37
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

KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
124
10 janv. 2016 à 12:03
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.
0
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016

10 janv. 2016 à 13:19
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
0
KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
124
Modifié par KX le 10/01/2016 à 13:31
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;
}
0
SMMM@
Messages postés
13
Date d'inscription
lundi 4 janvier 2016
Statut
Membre
Dernière intervention
1 février 2016

10 janv. 2016 à 13:37
ok merci beaucoup maintenant j'ai compris
0