我有以下代码,通过大小为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.println(i + " is out of bounds");
}
}
return tiles;
}
然而它输出
0 is out of bounds
1 is out of bounds
2 is out of bounds
3 is out of bounds
4 is out of bounds
5 is out of bounds
6 is out of bounds
7 is out of bounds
8 is out of bounds
为什么ArrayList
中的所有元素都超出范围?
答案 0 :(得分:1)
tiles
被初始化为一个空数组(0长度)。那是你的问题。
它会使tiles[i]
超出任何i
范围。
您应该以这种方式初始化tiles
,使其长度与board
的大小相同:
Tile[] tiles = new Tile[board.size()];
答案 1 :(得分:0)
这是由于空数组。
Tile[] tiles = {};
并且您尝试使用索引值访问空数组,例如1,2 .....等这就是为什么它显示出来的结果。