一起添加多个布尔数组

时间:2013-11-19 01:29:55

标签: java arrays nullpointerexception

我有这个方法,将两个2d布尔数组加在一起。因此,对于给定的单元格,如果该单元格的任何数组为true,则结果数组中的单元格将设置为true

private boolean[][] addBooleanArrays(List<boolean[][]> arrays) {
    boolean[][] result = new boolean[8][8];
    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            for (boolean[][] b : arrays) {
                if (b[i][j] == true) {
                    result[i][j] = true;
                }
            }
        }
    }
    return result;
}

我正在为这个方法提供16个我知道包含truefalse值的布尔数组,但我在if语句中得到一个空指针异常。我不明白为什么,也许我错过了什么。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:2)

添加null项检查,以确保特定b不是null

if (b != null && b[i][j] == true) {

您正在使用的for-each循环仍将返回arrays中的每个值,即使该值为null

答案 1 :(得分:1)

输入数组中的行为null而不是boolean[8].

答案 2 :(得分:0)

也许有些b [i]为null导致异常,我建议你检查生成数组元素的代码。