为什么这段代码会抛出nullpointerexception?

时间:2014-05-15 08:17:54

标签: java nullpointerexception

我不明白为什么这段代码会抛出空指针异常,因为我认为第3行将sampleArray[0][0])的值设置为1

int arrSize = 100;
String[][] sampleArray = new String[arrSize][];
sampleArray[0][0]="1";
System.out.println(sampleArray[0][0]);

任何帮助?

2 个答案:

答案 0 :(得分:10)

sampleArray[0]尚未初始化为数组。 您初始化了数组的第一个维度,但没有初始化第二个维度

您需要执行sampleArray[0] = new String[size]

之类的操作

初始化程序String[][] sampleArray = new String[arrSize][]有效,因为您正在创建一个引用其他数组的数组。其他每个阵列都可以有不同的大小,您可以根据需要设置。我的意思是以下是完全合法的:

sampleArray[0] = new String[10]; sampleArray[1] = new String[5]; System.out.println(sampleArray[0][9]); System.out.println(sampleArray[1][4]);

答案 1 :(得分:1)

您不能只设置第一维的二维数组大小。因为它是一个数组数组,所以你无法返回一个未实例化数组的数组。