【发布时间】:2010-11-22 19:17:37
【问题描述】:
在尝试从任何数组(封装在 Vector 中)获取字符串时,我不断收到 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];
}
因此,当我尝试获取从 eDetails.getEventTime 返回的数组中位置 0 处的项目(当 x 为 0 时)时,会引发 NullPointerException。
现在,当 x 为 0 时,我碰巧知道 getEventTime() 数组位置 0 处的数组元素是一个空字符串,但它不是空值。当 x 为 1 或 2 等时,我可以很好地检索时间。
问题是当我尝试执行以下操作时仍然会收到 NullPointerException:
**System.out.println(eDetails.getEventTime.length);**
or
String result;
**if(eDetails.getEventTime[0] == null){**
result = "";
} else {
result = eDetails.getEventTime[0];
}
有什么想法吗?
谢谢!
【问题讨论】:
-
我假设您的第二个代码块中的意思是
getEventTime()[0]?此外,您并没有真正展示如何填充对象。 -
@Jeremy 它应该是
getEventTime()[0]因为getEventTime[0]不会编译(方法不是数组)。 -
@extraneon -- 我知道,这就是我假设的原因。我只是想与 OP 澄清一下。但是,如果 OP 有一个公共实例变量
getEventTime,但不太可能呢?
标签: java arrays nullpointerexception