Java 为什么会抛出越界错误?
下面的代码通过一个大小为8的Java 为什么会抛出越界错误?,java,arrays,arraylist,indexoutofboundsexception,Java,Arrays,Arraylist,Indexoutofboundsexception,下面的代码通过一个大小为8的ArrayList public Tile[] getTiles(){ Tile[] tiles = {}; for(int i = 0; i < board.size(); i++){ try { tiles[i] = board.get(i); } catch(ArrayIndexOutOfBoundsException e){ System.out.pr
ArrayList
public Tile[] getTiles(){
Tile[] tiles = {};
for(int i = 0; i < board.size(); i++){
try {
tiles[i] = board.get(i);
} catch(ArrayIndexOutOfBoundsException e){
System.out.println(i + " is out of bounds");
}
}
return tiles;
}
为什么
ArrayList
中的所有元素都超出边界?tiles
被初始化为空数组(长度为0)。那是你的问题。
它使平铺[i]
超出任何i
的范围
您应该以这种方式初始化平铺
,使其长度与板的大小相同:
Tile[] tiles = new Tile[board.size()];
这是由于空数组造成的
Tile[]tiles={}代码>
您正在尝试使用索引值访问空数组,例如1,2。。。。。等等,这就是为什么它的显示不正常
Tile[] tiles = new Tile[board.size()];