我在createPathingTriangle()方法中创建了createTriangle()的阴影。 createTriangle工作正常,但是当我创建使用String而不是int的相同尺寸的createPathingTriangle时,新的三角形开始抛出NPE。
投掷它的线是 -
pathingTriangle[y][x] = new String("00" + String.valueOf(x));
即。第一行填充它。我查了一下,然后大量地撒了#34;新的"围绕createPathingTriangle中的代码,但它似乎没有解决问题。我假设它与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;
}
答案 0 :(得分:3)
您永远不会初始化数组pathingTriangle = new String[triangleSize][];
这是在第一个问题int [] xAxis = new int[triangle.length - y];