Bonjour,
Dans le code suivant, getMethod balance une exception:
java.lang.NoSuchMethodException: com.toto.beans.MyBean.updateTree(java.util.ArrayList)
Qu'est-ce que je dois mettre en 2ème argument de la méthode getMethod afin qu'il retrouve ma méthode updateTree(List<Data> treeList) ?
Merci pour vote aide.
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 public class MyBean implements Serializable { public void updateDB() { try { update("Tree"); update("Leaf"); ... } catch (Exception e) { log.error("", e); } } private void update(String methodName) throws Exception { Method method = null; method = this.getClass().getMethod("update" + methodName, ArrayList.class); //Je ne sais pas quoi mettre comme 2nd argument (ArrayList.class, List.class et List<Data>.class ne fonctionnent pas) /*Sinon, le code ci-dessous fonctionne mais c'est plus long et moins "safe" puisqu'on ne vérifie pas les arguments Method[] methods = this.getClass().getDeclaredMethods(); for (Method m : methods) { if (m.getName().equals("update" + methodName)) { method = m; break; } }*/ ... method.invoke(this, reqStatus.getResults().getRequestedData()); //reqStatus.getResults().getRequestedData() est de type List<Data> } private void updateTree(List<Data> treeList) throws Exception { ... } private void updateLeaf(List<Data> leafList) throws Exception { ... } }
Partager