因此,我已经有了一个读取文件的方法,该文件已转换为2d数组(因此,数组的尺寸每次可能会有所不同,具体取决于我使用的文件)。现在,我试图使用此方法绘制一个矩形,它将无法正常工作。我的代码是:
public static void drawBoard(String [][] board) {
for (int i = 0; (i < board.length); i++) { //line 88
for (int j = 0; (j < board[0].length); j++) {
int r = board.length;
int c = board[0].length;
double R = new Double(r);
double C = new Double(c);
StdDraw.setXscale(0,C);
StdDraw.setYscale(0,R);
StdDraw.setCanvasSize(500,500);
StdDraw.setPenRadius(0.05);
StdDraw.setPenColor(StdDraw.BLUE);
StdDraw.rectangle((C/2), (R/2), (C/2), (R/2));
StdDraw.close();
}
}
}
我该怎么做才能解决此问题?如何获得它绘制矩形?
它表示错误在第88行,并且是“ java.lang.NullPointerException”错误。
最佳答案
StdDraw.rectangle
需要类型为double
的输入参数。您将其传递为int
类型的输入参数。可以,但是您可能不想这样做。在计算C/2
和R/2
时,您执行integer division,因此您可能会意外舍入。要解决此问题,您可以将C
和R
初始化为double
。