我有这个方法,将两个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个我知道包含true
和false
值的布尔数组,但我在if语句中得到一个空指针异常。我不明白为什么,也许我错过了什么。任何帮助表示赞赏。
答案 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导致异常,我建议你检查生成数组元素的代码。