Java 为什么会抛出越界错误?

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

下面的代码通过一个大小为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;
}

为什么
ArrayList
中的所有元素都超出边界?

tiles
被初始化为空数组(长度为0)。那是你的问题。 它使
平铺[i]
超出任何
i
的范围

您应该以这种方式初始化
平铺
,使其长度与
板的大小相同:

Tile[] tiles = new Tile[board.size()];

这是由于空数组造成的

Tile[]tiles={}

您正在尝试使用索引值访问空数组,例如1,2。。。。。等等,这就是为什么它的显示不正常

Tile[] tiles = new Tile[board.size()];