Comment comparer les paramêtre: <T> de deux objets

Résolu
WINACreve Messages postés 11 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 24 décembre 2005 - 23 déc. 2005 à 05:44
WINACreve Messages postés 11 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 24 décembre 2005 - 24 déc. 2005 à 01:02
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

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

gmi19oj19
3
WINACreve Messages postés 11 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 24 décembre 2005
24 déc. 2005 à 01:02
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 <>
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
23 déc. 2005 à 11:02
instanceof ??
0