A voir également:
- Probléme des paramétres
- Paramètres s'arrête systématiquement - Forum Samsung
- Windows update un problème s'est produit. essayez d'ouvrir paramètres plus tard ✓ - Forum Windows
- Échec de la récupération des paramètres de twitch ✓ - Forum jeux en ligne
- Le bon coin mon compte parametres - Guide
- Les paramètres d'affichage nvidia ne sont pas disponibles ✓ - Forum Carte graphique
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 004
26 mars 2012 à 13:47
26 mars 2012 à 13:47
En faisant ta boucle for (Method m : TestClass2.class.getMethods()) tu itères toutes les méthodes de la classe et tu récupères l'objet String de retour, or il faudrait filtrer les méthodes qui :
1) ne renvoie pas String
2) n'ont pas autant d'arguments que params
3) n'ont pas les même types d'arguments que params
1) ne renvoie pas String
2) n'ont pas autant d'arguments que params
3) n'ont pas les même types d'arguments que params
26 mars 2012 à 13:58
26 mars 2012 à 14:00
26 mars 2012 à 14:32
26 mars 2012 à 14:32
Voici une manière de faire, ce n'est pas forcément idéal, mais la question que tu te poses est de toute façon trop tordue pour avoir une solution élégante...
class TestClass2 { } class Data { final boolean ok; final Object obj; Data() { ok=false; obj=null; } Data(Object o) { ok=true; obj=o; } } public class Test { public static Data[] getReturnedValues(Object obj, Object...args) { Method[] met = obj.getClass().getMethods(); Data[] tab = new Data[met.length]; for (int i=0; i<tab.length; i++) { try { tab[i] = new Data(met[i].invoke(obj, args)); } catch (Exception e) { tab[i] = new Data(); } } return tab; } public static void main(String...args) throws Exception { Data[] tab = getReturnedValues(TestClass2.class.newInstance()); for (int i=0; i<tab.length; i++) { if (tab[i].ok) System.out.printf("%d : %s\n",i,tab[i].obj); else System.out.printf("%d :\n",i); } } }26 mars 2012 à 14:47