这是我的代码:
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>
)更易于使用。