Bonjour à tous !
Je sèche un peu sur le problème que je rencontre.
Voilà le code :
En gros, je trouve une classe via son nom, ensuite je viens chercher la méthode "buildAnswer" de cette classe. J'ai fait un test en affichant la méthode, il la méthode est bien trouvée (le programme m'affiche bien la méthode entière avec les paramètres).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 String answerText = "blabla"; Class<?> c = null; Answer<?> tmp = null; Method meth = null; try { c = Class.forName("AnswerFactorySymbolic"); } catch (ClassNotFoundException e) { System.out.println("AnswerFactory not found when searching..."); e.printStackTrace(); } Method[] allMethods = c.getDeclaredMethods(); for (Method m : allMethods){ System.out.println(m.getName()); if (m.getName().equals("buildAnswer")) meth = m; } try { tmp = (Answer<?>) meth.invoke(null, answerText); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Sauf que, au moment de l'invoke, il me sort ça
Et je ne comprends pas du tout pourquoi. J'ai même fait un copié collé de l'énoncé de TP (où il est expliqué comment fait pour trouver la classe via son nom et invoquer la méthode) et j'ai aussi cette erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Exception in thread "main" java.lang.NullPointerException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at Questionnaire.createQuestion(Questionnaire.java:88) at Questionnaire.initQuestionnaire(Questionnaire.java:43) at Questionnaire.<init>(Questionnaire.java:23) at Questionnaire.main(Questionnaire.java:123)
Merci d'avance à celui qui m'aidera à la résoudre![]()
Partager