Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 2010
-
30 nov. 2008 à 20:35
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDerniè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.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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.
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 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...
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 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;
...
}
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...