2016-08-02 66 views
0

我試圖從對象resultObjectAtt中刪除具有F的子元素。 但是由於我將它從對象中移除,childElem.size()將會更改。使用Java在對象之間移動元素

所以,我試圖創建一個新的對象,並賦予舊的對象吧: okResultObject = resultObjectAtt;

但同樣的結果,任何幫助嗎?

okResultObject = resultObjectAtt;  
    for (int j = 0; j < childElem.size(); j++) { 

    subChildElem = childElem.get(j).getChildren(); 

     for (int j2 = 0; j2 < subChildElem.size(); j2++) { 
      Name = subChildElem.get(j2).getName(); 
      Value = subChildElem.get(j2).getValue(); 

      if(Name.equalsIgnoreCase("TYPE")){ 
       if(Value.equals("F")){ 
        okResultObject.getRootElement().getChildren().remove(j); 
        convertDocumentToXmlFile("C:\\test.xml", okResultObject); 
        } 
       } 
      } 
     }  

回答

0

該賦值只是創建resultObjectAtt的別名。如果resultObjectAtt是可複製的,那麼你可以使用resultObjectAtt.clone()來獲得一個新的對象。否則,您將需要通過其他方式構建okResultObject,例如遍歷resultObjectAtt的節點並向okResultObject添加相同的值。