J'appele une fonction dans un while de la façon suivante :
Voici à quoi ressemble ma fonction browseShapeChildsForBifs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 while (!node2Name.equals(attrNodeK)) { System.out.println("WHILE"); node2 = browseShapeChildsForBifs(shapeNodeList, attrNodeK); System.out.println("node2 "+node2); if (node2 != null) { node2Name = node2.getNodeName(); System.out.println("LE VRAI node2 QUI EST PAS NUL "+node2); } }
Et voici le résultat qui boucle sans cesse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private Node browseShapeChildsForBifs(NodeList shapeNodeList, String attrNodeName) { Node result = null; for (int i=0; i<shapeNodeList.getLength(); i++) { Node node = shapeNodeList.item(i); if (node.hasChildNodes()) { NodeList newShapeNodeList = node.getChildNodes(); browseShapeChildsForBifs(newShapeNodeList, attrNodeName); } if (shapeNodeList.item(i).getNodeName().equals(attrNodeName)) result = shapeNodeList.item(i); } if (result!=null) System.out.println("RESULT "+result); return result; }
Et maintenant la question qui est tout à fait logique si vous avez suivi jusqu'ici :WHILE
RESULT [Material2D: null]
node2 null
WHILE
RESULT [Material2D: null]
node2 null
=> Pourquoi est-ce que le "return" de ma fonction est censé renvoyer un élément de type "Node" s'appelant "Material2D" et que le "node2" que je récupère reste "null" ??
Partager