所以我有2个不同的数组应该是相同的(?),这些数组只是以不同的方式声明并且命名方式不同:
public static int[][] box = new int[10][5];
public static int[][] testBox ={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},
{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},
{0,0,0,0,0}};
现在我有了以下方法:
public static boolean putProductIntoBox(int[] product) {
if ((getFreePositionToFit(product) != null) && (remainingWeight >= product[2])) {
for (int i = getFreePositionToFit(product)[0];i-getFreePositionToFit(product)[0] < product[1]; i++) {
67 for (int j = getFreePositionToFit(product)[1]; j-getFreePositionToFit(product)[1] < product[0]; j++) {
testBox/box[j][i] = product[3]; // <- testBox works , box not
}
}
remainingWeight -= product[2];
return true;
} else {
return false;
}
}
现在让我很难过的是:
我进入方法时product[0]
为10(产品长度),product[1]
为5(产品宽度)。
现在看一下方法的第4行:如果我用testBox[j][i]
运行它可以正常运行
如果它使用box[j][i]
运行方法,我会在第67行获得NullPointerException
(putProductIntoBox
中的其他方法工作正常,测试它们)
有人可以告诉我为什么会这样,以及我如何解决它?
由于