开发者

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 NullPointerExcepti开发者_开发知识库on 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!


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


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


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜