【发布时间】:2012-04-22 13:48:03
【问题描述】:
好的,这就是我所拥有的:
String[] data = null;
String[] data2 = null;
String[] datas = res.split("(s1)");
int i1 = 0;
int i2 = 0;
for(String datasx : datas)
{
i1++;
String[] datas2 = datasx.split("(s2)");
for(String datas2x : datas2)
{
String[] odcinek = datas2x.split("(s3)");
data[i2] = odcinek[1] + "////" + odcinek[2] + "////" + odcinek[6];
i2++;
}
}
而且它不起作用。应用程序在此行崩溃:
data[i2] = odcinek[1] + "////" + odcinek[2] + "////" + odcinek[6];
实际上,Eclipse 给了我以下警告:
空指针访问:该位置的变量数据只能为空
但我不知道出了什么问题。有人可以帮忙吗?谢谢。
【问题讨论】:
-
data数组被初始化为null并且它永远不会被分配另一个值。数组本身为空,因此您不能为该数组中的成员分配值,例如:data[i2] = ... -
这里的问题不是 NPE 本身,而是您需要学习检查导致 NPE 的行上的所有变量,只要您通过回溯代码并查看每个变量的位置来获得一个变量初始化。这样做是一种反射,下一次,答案对你来说应该是显而易见的。我删除了下面的答案,以帮助减少“答案混乱”。