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 {
		...
	}
}