Java 2D ArrayList添加问题

Java 2D ArrayList添加问题,java,arrays,multidimensional-array,processing,Java,Arrays,Multidimensional Array,Processing,所以我试图为一个类编写一个俄罗斯方块克隆,我试图创建一个不同棋子的arraylist,这样我就可以在游戏中随机生成新棋子。由于某些原因,我无法将声明的“片段”(2D int数组)添加到数组列表中。下面是我的代码的样子: ArrayList<int[][]> pieces = new ArrayList<int[][]>(7); int[][] piece1 = {{0,1,0,0}, {0,1,0,0},

所以我试图为一个类编写一个俄罗斯方块克隆,我试图创建一个不同棋子的arraylist,这样我就可以在游戏中随机生成新棋子。由于某些原因,我无法将声明的“片段”(2D int数组)添加到数组列表中。下面是我的代码的样子:

    ArrayList<int[][]> pieces = new ArrayList<int[][]>(7);

    int[][] piece1 = {{0,1,0,0},
                     {0,1,0,0},
                     {0,1,0,0},
                     {0,1,0,0}};
    int[][] piece2 = {{0,1,0,0},
                     {0,1,0,0},
                     {1,1,0,0},
                     {0,0,0,0}};
    int[][] piece3 = {{0,1,0,0},
                     {0,1,0,0},
                     {0,1,1,0},
                     {0,0,0,0}};
    int[][] piece4 = {{0,1,0,0},
                     {1,1,0,0},
                     {0,1,0,0},
                     {0,0,0,0}};
    int[][] piece5 = {{0,0,0,0},
                     {1,1,0,0},
                     {0,1,0,0},
                     {0,0,0,0}};
    int[][] piece6 = {{0,0,0,0},
                     {0,1,1,0},
                     {1,1,0,0},
                     {0,0,0,0}};
    int[][] piece7 = {{0,0,0,0},
                     {0,1,1,0},
                     {0,1,1,0},
                     {0,0,0,0}};  
  void setup{ 
  pieces.add(piece1);
  pieces.add(piece2);
  pieces.add(piece3);
  pieces.add(piece4);
  pieces.add(piece5);
  pieces.add(piece6);
  pieces.add(piece7);
  }
If给我一个越界错误,说我的ArrayList中没有元素


非常感谢你!另外,我在Processing 3中编写代码,它与Java非常相似,只是语法上有一些细微的差异。

你调用过“设置”吗?@AJNeufeld Processing会自动为你调用
setup()
。请发布一篇文章。在您的例子中,我们需要了解您是如何调用
pieces.get()
行的。你发布的代码看起来没问题,所以它一定在其他地方。MCVE将帮助我们跟踪这一点。如果处理程序自动调用
setup()
,您确定它是在调用
pieces.get()
的代码之前调用的吗。使用调试器单步执行代码,或设置断点以确保调用它。或者至少添加一个
print
语句。另外,请确保您没有创建第二个名为
pieces
的变量,该变量将另一个变量隐藏起来。@AJNeufeld您是对的安装程序中的代码是在尝试从ArrayList获取值后调用的。谢谢你的帮助!
currPiece = pieces.get(int(random(pieces.size())));