Моя функция:Java рекурсивный функция не
private void addEdges(mxICell mainObject, List<Object> edgesList) {
if (mainObject.getEdgeCount() > 0) {
// for (int i = 0; i < mainObject.getEdgeCount(); i++) {
edgesList.add(mainObject.getEdgeAt(0));
addEdges(((Line) mainObject.getEdgeAt(0)).getSource(), edgesList);
}
// }
else
return;
}
на букву UPDATE Функция вызова здесь:
for (Object obj : map.values()) {
if (obj instanceof Port
&& ((Port) obj).getParent().getStyle().equals("POWER")) {
String Feeder = ((Port) obj).getParent().getValue()
.toString();
List<Object> edgesList = new ArrayList<Object>();
Port p = (Port) obj;
mxICell mainObject = p;
addEdges(mainObject, edgesList);
//staff
}}
END UPDATE это дает мне
Exception occurred during event dispatching:
java.lang.StackOverflowError
Является ли 'edgeCount' затронутым чем-либо, что вы делаете в цикле? Если нет, 'Stack Overflow' неизбежен. – devnull
'mainObject.getEdgeCount()' всегда '> 0'. – Maroun
Пожалуйста, используйте некоторое условие завершения. –