2015-03-21 3 views
0
System.out.print("Enter the Item number of what is to be changed"); 
     String itemNO = in.next(); 

     for (int i = 0; i<NewItem.itemArray.length; i++) 
     { 
      String value = NewItem.itemArray[i][3]; 

      if(value.equals(itemNO)) 
      { 
       //Rest of the code here 
      } 
} 

При запуске программы он генерирует исключение в «if (value.equals (itemNO))». Это ошибка, которую он показывает.. Метод неравенства() не работает с многомерными массивами

Exception in thread "main" java.lang.NullPointerException 
    at DeleteItem.deleteItem(DeleteItem.java:34) 
    at EditItemDetails.editItem(EditItemDetails.java:25) 
    at CD_Universe.editItemDetailsActions(CD_Universe.java:84) 
    at CD_Universe.main(CD_Universe.java:109) 

ответ

1

value все еще может быть нулевой в вашем коде, и поэтому пытается вызвать equals() на него будет сгенерировано исключение. Просто потому, что вы можете перебирать данный элемент, это не значит, что он был инициализирован. Я предполагаю, что вы создали массив заданного размера, но некоторым элементам этого массива никогда не присваивалось значение.

Вы можете исправить это путем заполнения элементов или добавления пустого чека: if (value != null) ...

В Java только массивы примитивов инициализируются значениями по умолчанию (так как примитивный тип не может быть null Массивами ссылочных типов. не будут инициализированы их значения.

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