Retourner un type de list

Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 30 nov. 2008 à 20:35
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 - 1 déc. 2008 à 12:14
Bonjour,


J'ai une liste qui contient des objets et je cherche le moyen de récupérer le type de ces objets.


Je peux les avoir grâce a une méthode qui me retourne un String, mais je ne peux pas insérer cela dans ma list.


List<"monType"> ==> comment faire pour convertir cette String dans le type qu'il faut ?


Auriez-vous une idée.


J'ai regarder un peu sur le net je n'ai malheureusement pas trouver de sujet sur ce problème qui a probablement déjà du arriver.


Merci par avance.

8 réponses

amine1234Z Messages postés 134 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 mai 2010 4
30 nov. 2008 à 22:44
salut
je croi que tu doit convertire le contenu selection de ta liste
//par exemple le convertire en un Entier

int A;
A=Integer.parsInt(nomListe.getSelectedItem());
//je suis pas sur du syntax
aller @+

% Mauvais Sens %
0
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 2
30 nov. 2008 à 22:53
Merci mais malheureusement ce que tu dis ne résoud en rien mon problème.

Le type de List n'est pas forcément un int ou encore un String.

Au contraire, ce sont des types personnalisés List<Client> ou encore List<Commande>.

Je peux récupérer ce type mais en String, je cherche à pouvoir l'appliquer dans la List.

Merci
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2008 à 00:56
salut

j'ai pas la solution toute faite, mais tu devrais regarder du cote de la reflection. j'avais fait ce genre de choses il y a plusieurs annees, et c'etait ca qui m'avait sauve.
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
1 déc. 2008 à 10:04
Salut,

J'ai pas vraiment compris ce que tu cherches à faire.

Je vais te dire ce que je crois que tu veux faire, tu valideras ou pas:

Tu as une liste de type personnalisés comme tu dis List<Client> ou encore List<Commande>.
Pour récupérer le type des objets de la liste, en effet, c'est simple de le récupérer en String.
Toi en fait, ce que tu voudrais c'est pouvoir instancier des nouveaux Objets à partir des types personnalisés que tu as dans ta List, c'est ça?

Ou alors est ce que tu as des objets donc tu ne connais pas vraiment la classe (soit Client soit Commande) et tu voudrais créer une liste à partir de cela?

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
1 déc. 2008 à 11:43
Bizarre ton souci, j'ai jamais eu ça à faire... Quoi qu'il en soit tu peux regarder du côté de la méthode Class.forName("...");
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
1 déc. 2008 à 11:58
Oui jojolemariole, mais j'ai bien peur que lui voudrait un truc qui fasse ce truc là :

List<Class.forName("...")> ....

Sauf que ça, ça ne marche pas, évidemment...

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
1 déc. 2008 à 12:07
Oui en effet, je n'avais pas réfléchi assez :s

Aka, je pense que tu vas devoir faire une méthode par requête, genre une méthode qui renvoie une liste de clients, une autre qui renvoie une liste de commandes etc...

Sinon tu fais une méthode générique comme tu sembles vouloir le faire (genre qui renvoie List<?> ou List<Object> et tu castes au retour de la méthode (évite de caster brutalement toute la liste mais plutôt élément par élément, exemple :

public class GenericDAO {

public List<?> getAllElements(String tableName){
...
}

}

public class Test {

public static void main(String... args){

GenericDAO dao = new GenericDAO();
List<?> clients = dao.getAllElements("clients");
for(Object uncastedClient : clients){
Client client = (Client) uncastedClient;
...
}

}

}
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
1 déc. 2008 à 12:14
+1 jojolemariole,

Je ne vois pas vraiment comment faire autrement... On pourrait s'en tirer avec des instanceof mais bon... ça ferait lourd comme code...

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
Rejoignez-nous