2015-02-10 6275 views
0

我一直有這個代碼片段麻煩:的Java,親子遞歸

public static void fillMenu(MenuItem menuItem, Set<MenuItem> menuItems) { 
    if (menuItem.getParentID() == 0) { 
     menuItems.add(menuItem); 
    } else { 
     for (Iterator<MenuItem> iterator = menuItems.iterator(); iterator.hasNext();) { 
      MenuItem currentItem = iterator.next(); 
      if (currentItem.getID() == menuItem.getParentID()) { 
       menuItem.setParent(currentItem); 
       currentItem.addChild(menuItem); 
       continue; 
      } 

      fillMenu(menuItem, currentItem.getChildren()); 
     } 
    } 
} 

這不加入我的子元素。有人可以幫忙嗎?謝謝。

+0

'currentItem.getChildren()'包含'currentItem'本身嗎?如果沒有,那麼你的代碼永遠不會將孩子添加到他們的父母。 – immibis 2015-02-10 21:09:06

+0

我想添加孩子到父母元素。我從db order byt id_parent中選擇節點。 – user2421904 2015-02-10 21:09:36

+0

你真的想要'休息'嗎?還是應該'繼續'? – chancea 2015-02-10 21:13:36

回答

0

你的問題是你的if語句if (currentItem.getID() == menuItem.getParentID())這沒有意義,因爲menuItem.getParentID()應該是列表的頭並且currentItem.getID()不是。