2015-02-10 3 views
-1

Я только начинаю программировать на Java. У меня проблема исключения нулевого указателя в списке массива Мой код нижеИсключение Null указателя в 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)

Проблема по-прежнему сохраняется. Что я делаю неправильно здесь.

+0

Вы уверены, что это: arpaymentitemsList не равно нулю? – Stultuske

+0

Я ввел это arpaymentitemsList.removeAll (Collections.singleton (null)); для удаления нулевых значений. Разве это не так? – Karthi

+0

нет, если сам список не создан, тогда вы просто бросаете NPE в другое место. – Stultuske

ответ

1

Вы можете попробовать это follwing шаги и дать обратную связь

ArrayList<Arpaymentitem> arpaymentitemsList = new ArrayList<>(); 
if (jb.getArpaymentitems().size()> 0) 
{ 
     for (Arpaymentitem arpaymentitem : jb.getArpaymentitems()) 
     { 
       System.out.println("Description: ..."); 
       arpaymentitemsList.add(arpaymentitem) 
     } 
} 
//The Rest of the code 
+0

Я получаю NPE в if (jb.getArpaymentitems(). Size()> 0) – Karthi

+0

Это означает, что проблема во входном файле jb.getArpaymentitems(). Можете ли вы напечатать значения jb.getArpaymentitems(), используя для каждого условия или проверить нуль? –

+0

Да. Я печатаю данные, используя цикл foreach. Получив около 180 записей, я получаю исключение с нулевым значением. Как пропустить проверку нулевых значений. или я могу остановить цикл, если будет достигнуто нулевое значение? – Karthi

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