array(java.lang.ArrayIndexOutOfBoundsException:-1)

时间:2013-11-07 13:46:45

标签: java arrays exception indexoutofboundsexception

这个错误是什么意思? java.lang.ArrayIndexOutOfBoundsException:-1 ?

java.lang.ArrayIndexOutOfBoundsException: -1
    at Game.Game.plantVegetables(Game.java:1160)
    at Game.__SHELL11.run(__SHELL11.java:8)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:725)

例外情况发生在:

   Scanner keyIn = new Scanner (System.in);

   for(int leftToPlant=10; leftToPlant>0; leftToPlant--)
      if (field[row1][column1].equals("t") ||
          field[row1][column1].equals("c") ||
          field[row1][column1].equals("p") ||
          field[row1][column1].equals("r"))

2 个答案:

答案 0 :(得分:2)

你试图将数组的第-1个元素放在不存在的位置。发布更多代码以获得更准确的答案。

答案 1 :(得分:0)

假设for循环中有一个数组,那么您正在尝试使用无效索引访问数组中的元素。检查你的for循环并确保你的数组包含11个元素。不会访问第一个元素。

JavaScript中的示例代码,包含10个元素的数组

    cars=["BMW","Volvo","Saab","Ford","SD","BMW","Volvo","Saab","Ford","SD"];

    for (var i=10;i>0;i--)
    {
     document.write(cars[i]);
    }

输出

     undefined    - Element 10 
     SD           - Element 9 
     Ford         - Element 8
     Saab
     Volvo
     BMW
     SD
     Ford
     Saab          - Element 2
     Volvo         - Element 1

  Element 0 won't be access because your loop stops at 1.

<强>小提琴: http://jsfiddle.net/VFLLN/