我不明白为什么使用以下代码抛出java.lang.NullPointerException (在这一行: iterator = chapterKeywords[z].iterator();):
Iterator<String> iterator;
for (int z = 0; z < chapterKeywords.length; z++) {
try {
iterator = chapterKeywords[z].iterator();
//exception thrown here after first iteration (i.e., when z = 1) and subsequent ones
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (Exception e) {
;
}
}
虽然我得到 NullPointerException,但代码完全执行。仅供参考,chapterKeywords 是一个 LinkedList 数组,其中每个数组元素都是一个 LinkedList(例如,singleChapterKeywords)。
LinkedList<String>[] chapterKeywords = new LinkedList[numFiles];
LinkedList<String> singleChapterKeywords = new LinkedList<String>();
尽管该程序似乎运行良好,但我想了解为什么会抛出 NullPointerException,因为我想完全消除它。基本上,在 for 循环中的每次迭代开始时都会引发异常。我修改了代码以在循环内创建一个新的迭代器,创建一个迭代器数组等,但它们都产生相同的结果:NullPointerException at iterator = chapterKeywords[z].iterator(); .
非常感谢任何有关消除此异常的帮助或见解。
所以,这是我的问题:
为什么将迭代器变量分配给新的迭代器时,每次后续迭代都会抛出 NullPointerException?
我怎样才能消除这个异常?
再次,TIA!
更新: 我认为LinkedList被正确填充并且工作正常,但是,唉,事实并非如此!感谢大家的无量帮助!