gpt4 book ai didi

java - 二维 int 数组不接受我提供的维度

转载 作者:行者123 更新时间:2023-12-01 06:53:23 25 4
gpt4 key购买 nike

这是我的 GridGenerator 类中的代码。目的是创建多个矩形房间,最终可以将它们连接在一起形成 map 。

int xRange, yRange;

//constructor
public GridGenerator(int xInput, int yInput) {
xRange = xInput;
yRange = yInput;
}

int[][] grid = new int[yRange][xRange];
//the first number indicates the number of rows, the second number indicates the number of columns
//positions dictated with the origin at the upper-left corner and positive axes to bottom and left

void getPosition(int x, int y) {
int position = grid[y][x]; //ArrayIndexOutOfBoundsException here
System.out.println(position);
}

这是我的 MapperMain 类中的代码。目的是将 GridGenerator 实例连接到多房间 map 中。我现在也将它用于调试和脚手架目的。

public static void main(String[] args) {

GridGenerator physicalLayer1 = new GridGenerator(10,15);

physicalLayer1.getPosition(0, 0); //ArrayIndexOutOfBoundsException here

}

我收到 ArrayIndexOutOfBoundsException 错误。在某些时候,xRange 被分配的值是 10,yRange 被分配的值是 15。但是,当我尝试使用 xRange 时, yRange 作为grid 的参数,Java 对此有一些问题,我不确定为什么。如果我在 GridGenerator 类中为 xRangeyRange 赋值,似乎没有问题。当我在 MapperMain 类中使用构造函数时,出现此错误。

最佳答案

这一行

grid = new int[yRange][xRange];

应该在构造函数中,因为在您的代码示例中,grid从未使用yRangexRange的正确值进行初始化。

所以 - 你的类应该看起来像这样:

public class GridGenerator {
private int xRange, yRange;
private int[][] grid;

//constructor
public GridGenerator(int xInput, int yInput) {
xRange = xInput;
yRange = yInput;
grid = new int[yRange][xRange];
}

...
}

关于java - 二维 int 数组不接受我提供的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19360830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com