【发布时间】:2016-04-21 12:37:42
【问题描述】:
我正在处理一个二维数组。问题很简单,但我想不通。当我尝试从索引array[i-1][j] 访问值时,它会引发空指针异常。虽然访问像 array[2-1][2] 这样的索引对我来说似乎是完全合法的。为什么它不工作?为什么我不能从一个后索引访问数组,或者我做错了什么,请解释一下。
声明和初始化数组的代码:
this.Result = new Integer[len][6];
发生空指针异常的代码:
for(int i=0;i<Result.length;i++) {
if(i==0){
Result[i][4]=0;
}
else if(Result[i][1]!=null) {
Result[i][4]=(Result[i-1][2]+Result[i-1][3])+Result[i][2];
}
}
提前致谢,语法错误请忽略。
【问题讨论】:
-
哪一行显示 NullPointerExcecption?
-
你能分享更多代码吗? Result 矩阵的声明是什么?
-
private Integer[][] Result;在这里 -
Integer 是一个类,因此当您使用 class 对其进行初始化时,它的默认值为 null,当您访问这些 null 值时,您将获得空指针异常,请改用 int,int 将使所有对象的值设为0. 然后你可以使用它们或修改它们。
标签: java arrays multidimensional-array nullpointerexception