Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1593 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Invocation dynamique de méthode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Invocation dynamique de méthode

n°926080
zedar
Posté le 17-12-2004 à 15:00:53  profilanswer
 

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.  

Code :
  1. String parametre = "toto.txt";
  2. String nomDeMaClasse = "maClasse";
  3. Class.forName(nomDeMaClasse).getMethod("main", new Class[]{String[].class}).invoke(null, new Object[]{parametre});


 
Le code de ma classe :
 

Code :
  1. public class maClasse
  2. {
  3. public maClasse()
  4.   {
  5.    ...
  6.   }
  7. public static void main(String args[])
  8. {
  9.    ...
  10. }
  11. }


 
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  

Code :
  1. Class.forName(nomDeMaClasse).getMethod("main", null).invoke(null, null);


et ben là ça passe.
Quelqu'un peut m'aider siouplait ?

mood
Publicité
Posté le 17-12-2004 à 15:00:53  profilanswer
 

n°926101
the real m​oins moins
Posté le 17-12-2004 à 15:13:29  profilanswer
 

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)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°926121
zedar
Posté le 17-12-2004 à 15:27:08  profilanswer
 

the real moins moins a écrit :

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)


 
(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 :o)
 
Je vois pas trop où rajouter des variables en fait, c'est assez illisible à la base [:petrus75]

n°926194
zedar
Posté le 17-12-2004 à 16:23:23  profilanswer
 

up :bounce:
 
C'est trop illisible ou personne n'a jamais eu le problème ?

n°926218
the real m​oins moins
Posté le 17-12-2004 à 16:49:18  profilanswer
 

euh je viens de te donner la reponse [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°926324
benou
Posté le 17-12-2004 à 19:11:32  profilanswer
 

en java <= 1.4 :

Code :
  1. Class c = Class.forName(nomDeMaClasse);
  2. Class[] methodParamType = new Class[]{String[].class};
  3. Method m = c.getMethod("main", methodParamType);
  4. //String[] paramValue =  à toi de voir ...
  5. Object[] methodParamValue = new Object[]{paramValue};
  6. m.invoke(null, methodParamValue);


 
en java1.5 :

Code :
  1. Class c = Class.forName(nomDeMaClasse);
  2. Method m = c.getMethod("main", String[].class);
  3. //String[] paramValue =  à toi de voir ...
  4. m.invoke(null, paramValue );



---------------
ma vie, mon oeuvre - HomePlayer
n°926328
the real m​oins moins
Posté le 17-12-2004 à 19:12:48  profilanswer
 

mais je viens de lui dire :o
le seul truc, donc, c'est qu'il passait un String au lieu d'un String[]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°926334
benou
Posté le 17-12-2004 à 19:17:11  profilanswer
 

the real moins moins a écrit :

mais je viens de lui dire :o


c'était pour montrer du java 1.5 [:petrus75]


---------------
ma vie, mon oeuvre - HomePlayer
n°926856
zedar
Posté le 18-12-2004 à 12:55:56  profilanswer
 

Merci à vous ;)
 
Désolé pour la première réponse, pas bien lu (c'était vendredi soir après tout :o)

n°928140
lapin21
Posté le 20-12-2004 à 15:27:22  profilanswer
 

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 !"  :D )
Merci aussi à Zedar d'avoir posté pour moi.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Invocation dynamique de méthode

 

Sujets relatifs
Quelle methode choirir ?[Résolu][ASPX][C#] Création dynamique d'un control et évènement
appel méthode c++ depuis cSingle Sign On et méthode POST
Taille de texte et div à hauteur dynamiqueEJB-QL : Clause where in dynamique [résolu]
Quelle méthode utiliser pour la mise en page de mon site web ?tritement dynamique d'un formulaire
Representation dynamique d'une file !!!Menu Contextuel dynamique (.Net)
Plus de sujets relatifs à : Invocation dynamique de méthode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR