Invocation dynamique de méthode - Java - Programmation
Marsh Posté le 17-12-2004 à 15:13:29
Class.forName(nomDeMaClasse).getMethod("main", new Class[]{String[].class}).invoke(null, new Object[]{new String[]{parametre}});
(introduit qques variables, ça sera un poil plus lisible)
Marsh Posté le 17-12-2004 à 15:27:08
the real moins moins a écrit : Class.forName(nomDeMaClasse).getMethod("main", new Class[]{String[].class}).invoke(null, new Object[]{new String[]{parametre}}); |
(Je poste pour qq'un d'autre dont l'inscription est pas validée depuis hier, si un modo ou un admin passe dans le coin... c'est lapin21 )
Je vois pas trop où rajouter des variables en fait, c'est assez illisible à la base
Marsh Posté le 17-12-2004 à 16:23:23
up
C'est trop illisible ou personne n'a jamais eu le problème ?
Marsh Posté le 17-12-2004 à 16:49:18
euh je viens de te donner la reponse
Marsh Posté le 17-12-2004 à 19:11:32
en java <= 1.4 :
Code :
|
en java1.5 :
Code :
|
Marsh Posté le 17-12-2004 à 19:12:48
mais je viens de lui dire
le seul truc, donc, c'est qu'il passait un String au lieu d'un String[]
Marsh Posté le 17-12-2004 à 19:17:11
the real moins moins a écrit : mais je viens de lui dire |
c'était pour montrer du java 1.5
Marsh Posté le 18-12-2004 à 12:55:56
Merci à vous
Désolé pour la première réponse, pas bien lu (c'était vendredi soir après tout )
Marsh Posté le 20-12-2004 à 15:27:22
Merci beaucoup à the real moins moins, effectivement j'avais oublié un niveau... (et pour les variables ben... "on fait du java ou on n'en fait pas !" )
Merci aussi à Zedar d'avoir posté pour moi.
Marsh Posté le 17-12-2004 à 15:00:53
Bonjour,
j'ai un problème avec la méthode invoke().
Je veux appeler la méthode main d'une classe dont je récupère le nom en base de données.
Le code de ma classe :
Là où ça ne passe pas c'est avec les arguments. Je voudrais passer un paramètre à ma méthode main, mais à ce moment j'ai une exception IllegalArgumentException, le type de mon argument ne correspond apparemment pas.
Alors que si je déclare ma fonction main sans arguments et si je fais
et ben là ça passe.
Quelqu'un peut m'aider siouplait ?