gpt4 book ai didi

java - 2维表,为什么出现NullPointerException

转载 作者:行者123 更新时间:2023-12-01 17:05:17 26 4
gpt4 key购买 nike

我有这样的代码:

   public class SumNum {
int inside;
SumNum(int inside){
this.inside = inside;
}
public int getInside(){
return inside;
}


public static void main(String[] args) {
SumNum[][] tab = new SumNum[3][];
for (int i = 0; i < tab.length; i++) {
for (int j = 0; j < tab.length; j++) {
tab[i][j] = new SumNum(i);
System.out.println(tab[i][j]+" "+tab[i][j].hashCode()+" "+tab[i][j].getInside());
}
}

}

}

我没有设置第二维数组的大小。不应该出现数组越界异常,因为第二个循环索引(j)受到数组长度的限制,好的,它可以工作。

问题是:为什么会出现NullPointerException?应该创建对象,因此它没有“null”值。

最佳答案

除非在二维数组中指定了第二个数组维度 tab ,一个包含 null 的数组将使用 Object 中元素的默认未分配值来创建值大批。使用

System.out.println(Arrays.deepToString(tab));

将产生

[null, null, null]

尝试分配值

tab[i][j] = new SumNum(i);

产生NPE

关于java - 2维表,为什么出现NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com