Comment comparer les paramêtre: <T> de deux objets [Résolu]

Signaler
Messages postés
11
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
24 décembre 2005
-
Messages postés
11
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
24 décembre 2005
-
Salut,

Est-ce que il y a un moyent de comparer 2 objets et de dire si ils sont du même type...

Mais un même type en se fiant également au paramêtre de classe utilisé lors de la déclaration.. (comme souvent appeler <T>) et dire si ils ont la même classe en paramêtre ou non
exemple:

Salut bob = new Salut();
Salut roger = new Salut();

//je voudrais faire quelque chose du genre:
if (bob.CompareDeclaration(roger))
//Pareil
else
//Pas Pareil

dans l'Exemple plus haut, les 2 variables sont du type "Salut" mais ils utilise un paramêtre de classe différent...
dans ce cas il devrais retourné "Pas Pareil" même si ils sont les 2 de type "Salut" parce que "Bonjour" et "Bonsoir" ne sont pas la même classe

j'espère avoir été assez clair... si vous voulez plus de détail.. laisser une note

Bye

3 réponses

Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
getClass().getName() sur tes deux objets puis une comparaison avec equals().

gmi19oj19
Messages postés
11
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
24 décembre 2005

exemple:
Salut bob = new Salut();
Salut roger = new Salut();

Merci j'avais déja essayer avec getClass().getName() mais sa ne marchait pas car il me retournais toujours "Salut" et non la classe passé entre les <> mais je vien de faire des tests et créant une fonction dans la classe "Salut" qu'on peut nommer: getParametreClass et qui retourne getClass().getName() d'un objet instancier avec la classe passé entre les <> alors dans ce cas il retourne le bon nom de classe et il est possible de comparer 2 objet "Salut" et de savoir si ils sont vraiment pareil. Sa peut sembler assez confu comme explication mais voici en code de quoi sa a l'air:

//La class qui nécessite un parametre
public class Salut<T> {
private T Bob; //Une variable global dans la classe
public Salut(T p_Bob) { //Un Constructeur
Bob = p_Bob;
}
public String getParametreClass() {
return Bob.getClass().getName(); //Un getClass().getName() mais qui se fait directement sur une valeur instancier avec la classe passé en paramêtre
}
}

//Une fonction externe qui veut savoir de quel type sont les variable
public void testSalut() {

Salut<Double> Var1 = new Salut<Double>(new Double(45));
System.out.println(Var1.getParametreClass()); //Va écrire: java.lang.Double

Salut Var2 = new Salut(new Integer(45));
System.out.println(Var2.getParametreClass()); //Va écrire: java.lang.Integer

}

En espérant que sa va aider du monde a mieux comprendre les classes avec Paramêtres <>
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
12
instanceof ??