我有兩個Arraylists,一個包含一個完整的對象列表,第二個包含要從第一個列表中刪除的對象。ArrayList和Formatter的行爲不如預期
當我從第一個列表中刪除對象,並使用Formatter將這些對象輸出到文件時,沒有任何內容寫入該文件。但是,如果我從第一個Arraylist輸出對象,而不刪除任何對象,則所有這些對象都會出現在文件中。
例如: -
for(Invoice inv : tempStore)
{
if(invoiceLines.contains(inv))invoiceLines.remove(inv);
}
//for each invoice in the ArrayList
for(Invoice invoice : invoiceLines)
{
output.format("%"+this.spec.getLength("XXXX")+"s\t",checkString(invoice.getInvoiceDate()));}
給我任何輸出,但是正是這樣做: -
//for each invoice in the ArrayList
for(Invoice invoice : invoiceLines)
{
output.format("%"+this.spec.getLength("XXXX")+"s\t",checkString(invoice.getInvoiceDate()));}
給我的輸出信息,當手動調試應用程序的數組列表(帶有對象刪除),確實包含仍然是對象,並且這些對象包含正確的值。就好像Arraylist,一旦對象被刪除,就會丟失內存中的指針。
任何想法?不幸的是,我不能在特定的代碼方面付出太多的代價,但是要問任何問題,我會盡我所能地盡力回答。該語言是Java,我在SDK中使用Java合規性1.5。
我會使用一個調試器,並檢查你的'invoiceLines'是否在迭代和打印情況1之前是空的。 – Mena
已經這樣做了,因此使用調試器時對象存在的評論。當我說手動調試時,我的意思是逐步執行代碼並檢查變量,而不是使用我編寫的自動化測試。 –