我剛開始java編程。我在數組列表得到了一個空指針異常問題 我的代碼如下java中的空指針異常ArrayList
ArrayList<Arpaymentitem> arpaymentitemsList= jb.getArpaymentitems();
arpaymentitemsList.removeAll(Collections.singleton(null));
try {
for(Arpaymentitem arpaymentitem:arpaymentitemsList)
{
if (arpaymentitem.getInvoicekey()!=null) {
statement2.setString(1,arpaymentitem.getInvoicekey());
}
if(arpaymentitem.getInvoicekey() != null)
{
statement2.setString(2,arpaymentitem.getAmount());
}
}
statement2.addBatch();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我在FOR語句獲得空指針異常錯誤。我確信列表中有一些空值。要忽略空值我已經介紹了一步
ArrayList<Arpaymentitem> arpaymentitemsList= jb.getArpaymentitems();
arpaymentitemsList.removeAll(Collections.singleton(null)); --> remove nulls
我得到的NPE是 顯示java.lang.NullPointerException 在payment.Intacct_Payment.main(Intacct_Payment.java:169)和行是爲 (Arpaymentitem arpaymentitem:arpaymentitemsList)
問題仍然存在。我在這裏做錯了什麼。
你確定這一點:arpaymentitemsList不爲空? – Stultuske 2015-02-10 12:07:24
我已經介紹了這個arpaymentitemsList.removeAll(Collections.singleton(null));刪除空值。這是不對的? – Karthi 2015-02-10 12:08:25
如果列表本身沒有實例化,那麼你不需要在不同的位置放置一個NPE。 – Stultuske 2015-02-10 12:09:24