littleK
littleK

Reputation: 20123

Help with java array nullpointerexception

I keep receiving a NullPointerException while trying to get a string from any array (that is encapsulated within a Vector). I cannot seem to stop the error from happening. It's got to be something simple, however I think that I have been looking at it for too long and I could sure use another set of eyes. Here is my code:

 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];

 }

So when I try to get the item at position 0 in the array (when x is 0) that is returned from eDetails.getEventTime, a NullPointerException is thrown.

Now, when x is 0 I happen to know that the array element at position 0 of the getEventTime() array is an empty string, but it is NOT a null value. When x is 1 or 2, etc. I can retrieve the time just fine.

The problem is that I will still receive the NullPointerException when I try to do things like the following:

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

 or

 String result;

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

Any ideas?

Thanks!

Upvotes: 2

Views: 966

Answers (3)

extraneon
extraneon

Reputation: 23950

The simplest way to figure this out is:

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];
 }

It may not look nice but at least it's informative.

Upvotes: 0

Brent Writes Code
Brent Writes Code

Reputation: 19603

Are you sure in your second example, it shouldn't be:

if(eDetails.getEventTime() == null)

Instead of:

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

Are you making sure you leave the [0] off when you do the null check?

If the function eDetails.getEventTime() returns null, then you'll get a NullPointerException when you try to do eDetails.getEventTime()[0];

Upvotes: 2

Vladimir Ivanov
Vladimir Ivanov

Reputation: 43088

Seems that when you get details.get(0).getEventTime() the array returned is null.

Upvotes: 1

Related Questions