我正在方法createPathingTriangle() 中创建createTriangle() 的阴影。 createTriangle 工作得很好,但是当我创建使用 String 而不是 int 的相同尺寸的 createPathingTriangle 时,新三角形开始抛出 NPE。
抛出它的线是-
pathingTriangle[y][x] = new String("00" + String.valueOf(x));
即填充它的第一行。我查了一下,并在 createPathingTriangle 中的代码周围自由地撒上了"new",但它似乎没有解决问题。我假设它与 int 是原语但 String 不是这样的事实有关,但是摆弄了几个小时却什么也没得到。
private int[][] createTriangle() {
triangle = new int[triangleSize][];
for (int y = 0; y < triangle.length; y++){
int [] xAxis = new int[triangle.length - y];
for (int x = 0; x < xAxis.length; x++){
xAxis[x] = (int) (Math.random() * 100);
}
triangle[y] = xAxis;
}
printTriangle(triangle);
return triangle;
}
private String[][] createPathingTriangle() {
pathingTriangle = new String[triangleSize][];
for (int y = 0; y < pathingTriangle.length; y++){
for (int x = 0; x < pathingTriangle.length - y; x++){
if (x < 10){
pathingTriangle[y][x] = new String("00" + String.valueOf(x));
}
else if (x < 100){
pathingTriangle[y][x] = new String("0" + String.valueOf(x));
}
else{
pathingTriangle[y][x] = new String(String.valueOf(x));
}
}
}
return pathingTriangle;
}
最佳答案
您永远不会初始化数组的第二个维度pathingTriangle = new String[triangleSize][];
这是在第一个函数中完成的int [] xAxis = new int[triangle.length - y];
关于java - 字符串数组中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25564627/