我正在尝试根据我的side2 []数组中的对象编写一个新文档。 现在不幸的是,一些索引在这个数组中是null,当它遇到其中一个时,它只给我一个NullPointerException。这个数组有10个索引,但在这种情况下并不是所有索引都需要。我已经尝试了try catch语句,希望在它遇到null之后继续,但它仍然会停止执行并且不会写入新文档。 作为对象一部分的堆栈(srail)包含我要打印的数据。
这是我的代码:
// Write to the file
for(int y=0; y<=side2.length; y++)
{
String g = side2[y].toString();
if(side2[y]!=null){
while(!side2[y].sRail.isEmpty())
{
out.write(side2[y].sRail.pop().toString());
out.newLine();
out.newLine();
}
out.write(g);
}
}
//Close the output stream/file
out.close();
}
catch (Exception e) {System.err.println("Error: " + e.getMessage());}
答案 0 :(得分:3)
问题是代码在toString()
对象上调用side2[y]
之前检查null
。您可以通过在循环顶部添加条件来跳过null
个对象,如下所示:
for(int y=0; y<=side2.length; y++) {
if(side2[y] == null) {
continue;
}
String g = side2[y].toString();
// No further checks for null are necessary on side2[y]
while(!side2[y].sRail.isEmpty()) {
out.write(side2[y].sRail.pop().toString());
out.newLine();
out.newLine();
}
out.write(g);
}