2012-05-08 4 views
1

У меня есть массив с 18 объектами в нем, и массив выделяется, чтобы иметь в нем 25 объектов (остальные 7 объектов являются нулевыми для будущего использования). Я пишу программу, которая выводит все ненулевые объекты, но я работаю с NullPointerException, и я не могу понять, как обойти это.Обработка нулевых объектов в массиве

Когда я пытаюсь это, программа вылетает с Exception in thread "main" java.lang.NullPointerException:

 for(int x = 0; x < inArray.length; x++) 
     { 
      if(inArray[x].getFirstName() != null)//Here we make sure a specific value is not null 
      { 
       writer.write(inArray[x].toString()); 
       writer.newLine(); 
      } 
     } 

И когда я пытаюсь это, программа работает, но до сих пор печатает аннулирует:

 for(int x = 0; x < inArray.length; x++) 
     { 
      if(inArray[x] != null)//Here we make sure the whole object is not null 
      { 
       writer.write(inArray[x].toString()); 
       writer.newLine(); 
      } 
     } 

Может кто-нибудь мне точку в правильное направление обработки нулевых объектов в массиве? Вся помощь приветствуется!

+2

Я удивлен, что вторая версия не работает. Вы уверены, что все еще печатает нули? –

+1

Я думаю, что Луис прав. Нет проблем со второй версией кода. –

+0

«но все равно печатает нули», вы уверены? Вы переопределили метод 'toString()' в своем классе? –

ответ

9

чек должен быть:

if(inArray[x] != null && inArray[x].getFirstName() != null) 
+0

Спасибо @ Habib.OSU, я приму это, когда смогу. Так просто, не уверен, почему я не пробовал! –

+0

Добро пожаловать @AndrewDeForest – Habib

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