避免在我的数组中使用空索引

时间:2013-11-04 00:06:53

标签: java nullpointerexception

我正在尝试根据我的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());}

1 个答案:

答案 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);
}