Помогите с массивом Java nullpointerexception - PullRequest
2 голосов
/ 22 ноября 2010

Я продолжаю получать исключение NullPointerException при попытке получить строку из любого массива (который инкапсулирован в векторе).Кажется, я не могу остановить ошибку.Это должно быть что-то простое, однако я думаю, что я смотрю на это слишком долго, и я мог бы наверняка использовать другой набор глаз.Вот мой код:

 Vector<Event> details = vector.get(i).getEvent();

 for (int x = 0; x < details.size(); x++) {
      Event eDetails = details.get(x);

      person = eDetails.getEventPerson();
      place = eDetails.getEventPlace()[0];
      time = eDetails.getEventTime()[0];

 }

Поэтому, когда я пытаюсь получить элемент в позиции 0 в массиве (когда x равен 0), который возвращается из eDetails.getEventTime, генерируется исключение NullPointerException.

Теперь, когда x равен 0, я знаю, что элемент массива в позиции 0 массива getEventTime () является пустой строкой, но НЕ является нулевым значением.Когда x равен 1 или 2 и т. Д., Я могу получить время просто отлично.

Проблема в том, что я все равно получу исключение NullPointerException, когда попытаюсь сделать что-то вроде следующего:

 **System.out.println(eDetails.getEventTime.length);**

 or

 String result;

 **if(eDetails.getEventTime[0] == null){**
      result = "";
 } else {
      result = eDetails.getEventTime[0];
 }

Есть идеи?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 22 ноября 2010

Вы уверены, что во втором примере это не должно быть:

if(eDetails.getEventTime() == null)

Вместо:

if(eDetails.getEventTime[0] == null)

Обязательно ли вы выключаете [0] при выполнении нулевой проверки?

Если функция eDetails.getEventTime() возвращает null, то при попытке сделать * вы получите NullPointerException1017 *

1 голос
/ 22 ноября 2010

Похоже, что когда вы получите details.get(0).getEventTime(), возвращаемый массив будет нулевым.

0 голосов
/ 22 ноября 2010

Самый простой способ понять это:

Vector<Event> details = vector.get(i).getEvent();

 for (int x = 0; x < details.size(); x++) {
      Event eDetails = details.get(x);
      if (eDetails == null) {
          throw new NullPointerException("eDetails on pos " + x + " is null");
      }

      person = eDetails.getEventPerson();
      Something[] places = Details.getEventPlace();
      if (places == null) {
          throw ....
      }
      place = eDetails.getEventPlace()[0];

      Something[] times =  eDetails.getEventTime();
      if (times == null) {
          throw ....
      }
      time = eDetails.getEventTime()[0];
 }

Это может выглядеть не очень красиво, но по крайней мере информативно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...