Bonjour, j'ai un petit souci avec la reflexivité.
Je dois appeler des méthodes dont je ne connais pas le type des paramètres.
Pour retrouver ces types, j'utilise la méthode getParameterTypes() de la classe Method.
Seulement, comme je travaille à partir d'un main, mes arguments sont des String, je veux donc convertir mes arguments dans le bon type pour pouvoir appeler ma méthode.
Avec les types non primitifs pas de problème, mais pour les types primitifs je n'y arrive pas. Voilà un morceau de mon code pour aider.
En fait la méthode que je teste à 4 paramètres, 3 String et un int.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Class[] params = m.getParameterTypes(); Object[] os = new Object[params.length]; Constructor construct; for(i = 0; i < params.length; i++){ construct = params[i].getConstructor(new Class[]{String.class}); os[i] = construct.newInstance(new String[]{args[i]}); }
Pour les String, je récupère le constructeur sans problème puisque String est un Object, par contre pour le int pas moyen.
Je voudrais donc savoir comment passer d'un Class = int à un Class = Integer automatiquement car int n'est pas le seul type primitif existant !
Merci d'avance
Partager