我有这段代码:
public class Test{
arrayList<String> list = new ArrayList<String>();
String[][] temp_list;
public static void main(String[] args)
{
String temp = list.get(0);
temp_list[0] = temp.split(" ");
}
}
我想将'list'中的第一项转移到temp_list [0]。编译成功但我运行时出错。这是错误:
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:this line=>temp_list[0] = temp.split(" ");)
任何人都可以帮助我吗?
答案 0 :(得分:0)
您需要在使用之前初始化temp_list。您需要指定数组的大小。例如:
int sizeOfArray = 5;
String[][] temp_list = new String[sizeOfArray][];
答案 1 :(得分:0)
这是因为您没有为temp_list
分配任何2D数组。 (拆分结果应该存储在哪个数组?)
这是您的代码段的工作版本。
import java.util.ArrayList;
public class Test {
static ArrayList<String> list = new ArrayList<String>();
static String[][] temp_list;
public static void main(String[] args) {
list.add("hello wold");
// allocate memory for 10 string-arrays.
temp_list = new String[10][]; <-----------
String temp = list.get(0);
temp_list[0] = temp.split(" ");
}
}
答案 2 :(得分:0)
此代码将无法编译,因为list被声明为类的成员变量,但main是静态方法。
如上所述,list也没有添加任何内容,因此对list.get(0)的调用将抛出异常(尽管不是空指针)。
在给定的代码中没有分配数组temp_list(没有新的),因此尝试赋值将抛出空指针异常。