我在createPathingTriangle()方法中創建了createTriangle()的陰影。 createTriangle工作得很好,但是當我創建使用String而不是int的相同尺寸的createPathingTriangle時,新的三角形開始拋出NPE。字符串數組中的空指針異常
那的投擲它的線是 -
pathingTriangle[y][x] = new String("00" + String.valueOf(x));
即該填充它的第一行。我查了一下,在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;
}
第一funnction做的第二個方面,你可以發佈一個堆棧跟蹤? – Fildor 2014-08-29 08:42:06
請在NPE發生的地方標註一行 – talex 2014-08-29 08:42:12
首先,不要在創建新的String對象時不要使用'new String();'。其次,你可以提供一些堆棧跟蹤和更多的信息 – Eypros 2014-08-29 08:42:40