线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:5 在Grid.main(Grid.java:25)
尝试编译时出现上述错误:
class Grid {
// Grid drawing method
static void drawGrid(int n) {
StdDraw.setXscale(0, 2*n);
StdDraw.setYscale(0, 2*n);
// StdDraw.jar setter for scale method called
for (int v = 1; v <= n; v++) {
// variable colours lower left square red.
for (int k = 1; k <= n; k++) {
if ((v+k) % 2 == 0)
StdDraw.setPenColor(StdDraw.RED);
else
StdDraw.setPenColor(StdDraw.BLACK);
StdDraw.filledSquare(2*v-1, 2*k-1, 1);
}
}
}
public static void main(String[] args) {
drawGrid(Integer.parseInt(args[5]));
// calls the drawGrid method to draw the grid with defined values
}
}
我知道这可以被解释为一个简单的程序和大多数人的基本错误,只是一个无辜的小红色和黑色网格,但它让我感到难过。我想我明白错误意味着什么,我试图访问程序无法绘制的网格大小?这是我从本网站和其他人的资源研究中收集到的,我只是不明白为什么5的值会引发错误。我尝试改变这个价值,无论数字如何,它都是不分青红皂白的。我认为增量计算可能存在问题或什么?
这个程序在Netbeans上成功编译,据我的同事说,但在我的家里Eclipse设置我得到了#34; OutOfBounds&#34;错误。
当然,我意识到这可能有点微不足道,但我已尽我所能去理解为什么我的同事代码失败了,而且我自己也不了解它。所以,我向你提出,Stack Overflow社区。这个错误的原因是什么?
P.S。我很好奇这是否真的适用于Netbeans,因为我正在接受适度值得信赖的同事的话,但目前还没有办法在这个系统上设置JDK。如果有权访问该软件的人可以测试这个,我将非常感激吗?
答案 0 :(得分:0)
错误似乎发生在您的main方法中。 args[5]
是程序的第6个命令行参数。根据您的代码,我假设它应该是drawGrid(Integer.parseInt(args[0]));
。这将访问第一个命令行参数。
至于它是否适用于Netbeans,唯一可以找到的方法就是尝试它!