2016-10-15 2 views
0

Я разбираю некоторые XML-файлы, используя библиотеки XStream. Результатом является карта для каждого файла. Когда я отлаживаю, карта результата - это то, что я искал, но когда я перехожу к следующей строке, значение карты меняется из-за синего! Однако он не подходит для следующего раунда в цикле «for», он содержит информацию о следующем файле. Что может вызвать это?Как изменяется значение HashMap?

public class Debug { 
public String path = "E:\\Projects\\svn\\FANRPProduction\\WMS\\src\\main\\resources\\wms\\bpmn\\bp"; 
public XStream xStream; 
public Map<String, List<CallActivity>> bpTpMap; 

public void findBPandTP() throws IOException { 
    File root = new File(path); 
    File[] xmlFiles = FindAllXMLFiles.recursive(root); 

    bpTpMap=new HashMap<String, List<CallActivity>>(); 
    for (File xml : xmlFiles) { 
     if (xml != null) { 
      xStream = new XStream(new StaxDriver()); 
      xStream.alias("definitions", CallActivity.class); 
      xStream.registerConverter(new CallActivityConverter()); 
      bpTpMap = (Map) xStream.fromXML(xml);//Here I get correct information. For example "WMS_RBP_OutgoingWeighing" 
      List<String> bpList = new ArrayList<String>(bpTpMap.keySet()); //Here I see the name of the next file in the path in bpTpMap, which is "WMS_BP_WeighingConfiguration" 
     } 
    } 
} 

}

ответ

0

Я хотел бы предложить вам для отладки со следующим:

bpTpMap = (Map) xStream.fromXML(xml);//Here I get correct information. For example "WMS_RBP_OutgoingWeighing" 

System.out.println(bpTpMap.size()); 
Set<String> setOfKeys = bpTpMap.keySet(); 
System.out.println("Initial value of keys:"+bpTpMap);//Here you would see any extra values if the map has it 
+0

Спасибо. IntelliJ был разбит. Моя проблема решена. – Behnaz

 Смежные вопросы

  • Нет связанных вопросов^_^