我有这样的代码:
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(" ");)
有人能帮我吗? 这是因为您没有为temp_list
分配任何2D-array。(拆分的结果应该存储在哪个数组中?)
这是你的代码片段的工作版本。
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(" ");
}
}
这段代码将无法编译,因为list被声明为类的成员变量,而main是静态方法。
如前所述,list也没有添加任何内容,因此调用list.get(0)将抛出异常(尽管不是空指针)。
在给定的代码中没有分配数组temp_list(没有新建),因此尝试对其进行赋值将抛出空指针异常。
您需要在使用temp_list之前初始化它。您需要指定数组的大小。例如:
int sizeOfArray = 5;
String[][] temp_list = new String[sizeOfArray][];