次のコードで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は適切に入力され、正常に機能していると思いましたが、残念ながらそうではありませんでした。計り知れないほどのご協力をありがとうございました!