Java 多维数组和ArrayIndexOutOfBoundsException

Java 多维数组和ArrayIndexOutOfBoundsException,java,arrays,Java,Arrays,我有一个奇怪的问题,我无法解决: 字段: private boolean[][][] gaps; 建造商(第1行): 建造师(第二行): for(int i=0;i

我有一个奇怪的问题,我无法解决:

字段:

private boolean[][][] gaps;
建造商(第1行):

建造师(第二行):

for(int i=0;i
Java在第2行抛出一个错误,表示:

线程“main”中的异常
java.lang.ArrayIndexOutOfBoundsException


它是否与Java语法有关(错误在这些代码行中)或者我应该在其他地方寻找问题?

您可能误读了错误输出。您的第二行甚至无法访问数组-请确保引发异常的不是for循环体的第一行。此外,请确保您仅使用
I
索引数组的第一个维度。

您e可能误读了错误输出。您的第二行甚至没有访问数组-请确保引发异常的不是for循环体的第一行。此外,请确保仅使用
i
索引数组的第一维度。

有时java编译器会关闭一两行。您可以检查显示错误所在行周围的代码行,看您是否看到任何内容。

有时java编译器会关闭一两行。您可以检查显示错误所在行周围的代码行,看您是否看到任何内容。

抱歉,但您确实不想这样做

多维数组永远不值得它们引起的混乱——它们根本没有正值(除了清晰、明显的x,y数组之外)


我建议您尝试从二维数组列表或二维对象数组开始,其中每个对象都包含一个列表。

抱歉,但您确实不想这样做

多维数组永远不值得它们引起的混乱——它们根本没有正值(除了清晰、明显的x,y数组之外)


我建议您尝试从二维数组列表或二维对象数组开始,其中每个对象都包含一个列表。

假设
NOBARRICADES
在某个地方是一个常量int,那么您发布的循环就不可能抛出一个异常句号。您能发布所有操作的实际代码吗?由于第二行上没有数组引用,我怀疑您没有发布足够的代码供任何人帮助。您能告诉我们您实际索引间隙的行吗?第二行实际上不是异常的源,您的循环声明很好。我假设您引用了数组的错误维度还有一个提示:不要把循环变量称为简单的东西,比如i或j,把它们称为有用的东西,比如“索引”“内部索引”“第一个索引”,任何描述性的,尤其是当你要嵌套循环时。假设
NOBARRICADES
在某个地方是一个常量int,那么你发布的for循环就不可能抛出一个异常,句号。你能发布它全部工作的实际代码吗?因为第二行没有数组引用,我怀疑你没有发布了足够的代码供任何人帮助您。您能告诉我们您实际索引间隙的行吗?第二行实际上不是异常的来源,您的循环声明很好。我假设您使用I引用了错误的数组维度。还有专业提示:不要调用循环变量简单的事情,如I或j,调用它们一些有用的东西,比如“索引”“内部索引”“第一个索引”,任何描述性的东西,特别是当你要嵌套循环时。什么时候?根据我的经验,java编译器从来不会因为“一两行”而关闭。唯一的区别是,如果您从运行源文件的服务器下载源文件,并且使用插入换行符的FTP客户端对其进行了不同的格式设置。我在使用Java源类时遇到了这个问题。我认为这是javadoc的问题。运行时会给出一个行号,如果我检查该行,则该行号是完整的什么时候?根据我的经验,java编译器从来不会因为“一两行”而关闭。唯一的区别是,如果您从运行源文件的服务器下载源文件,并且使用插入换行符的FTP客户端对其进行了不同的格式设置。我在使用Java源类时遇到了这个问题。我认为这是javadoc的问题。运行时会给出一个行号,如果我检查该行,则该行号是完整的另一种方法。
gaps = new boolean[NOBARRICADES][WIDTH][HEIGHT];
for (int i = 0; i < NOBARRICADES; i++) {