Bonjour à vous

Je souhaite remplir un treeNode en utilisant la réflexivité, je m'explique

J'ai:
  • un objet Parc qui contient un ArrayList<Machine>
  • un objet Machine qui contient un ArrayList<DisqueDur>
  • un objet Machine qui contient un ArrayList<Ecran>


je souhaiterai pouvoir envoyé un objet quelconque (Parc, Machine) pour remplir un treeNode voila le début mais je n'arrive pas à récupérer les objet contenus dans les ArrayList:

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
33
34
35
36
37
38
39
40
41
42
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import javax.swing.tree.*;
 
public class MethodeGraphique<T> {
 
	public static TreeNode remplirTreeNode(Object objet) {
		DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode(objet
				.getClass().getName());
		Field[] champs = objet.getClass().getDeclaredFields();
		for (int i = 0; i < champs.length; i++) {
			if (champs[i].getType() != ArrayList.class)
				continue;
			else
			try {
				Method m= objet.getClass().getMethod("get"+champs[i].getName());
				//Object o=objet.getClass().getField(champs[i].getName());
				Object o=m.invoke(objet);
				System.out.println(o.toString());
			} catch (SecurityException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (NoSuchMethodException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 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();
			} 
		}
 
		return null;//je ne suis jamais arrivé jusque là
 
	}
Comme vous le voyez j'ai essayé aussi de passer par la class Method mais j'obtiens une exception noSuchMethodException, alors que cette méthode existe!!

Si quelqu'un peut m'aider par cette voie là ou part une autre, juste pour récupérer les objets de mes ArrayLists, afin de faire juste après
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
for (Bidoule bidoule:ListBidoule){
....
Merci