这是我的代码:

Comic[] comix = new Comic[3];
comix[0] = new Comic("The Amazing Spider-man","A-1","Very Fine",9240.00F);
comix[0].setPrice((Float)quality.get(comix[0].condition));
for(int i=0;i<comix.length;i++){
    System.out.println("Title: " + comix[i].title);
}


为什么在运行此代码时出现NullPointerException?

最佳答案

您只设置了comix[0]的值,但同时也在循环中获取comix[1] .title和comix[2] .title,因为comix.length为3。数组中每个元素的默认值引用类型为null。长度是整个数组的长度,而不仅仅是“填充”元素的长度。

您可能会发现List<T>(最常用的实现是ArrayList<T>)更易于使用。

09-26 11:57