【发布时间】:2015-04-12 01:21:52
【问题描述】:
我正在 Greenfoot 为一个学校项目编程,但我不断收到此错误:
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at Speler.act(Speler.java:60)
at greenfoot.core.Simulation.actActor(Simulation.java:583)
at greenfoot.core.Simulation.runOneLoop(Simulation.java:541)
at greenfoot.core.Simulation.runContent(Simulation.java:215)
at greenfoot.core.Simulation.run(Simulation.java:205)
通过此代码:
if (Greenfoot.isKeyDown("s"))
{
int wapenID;
if(schietTimer < 1)
{
if(richting != null)
{
if(gebruiktWapen != -1)
{
{
getWorld().addObject(new Kogel(richting), getX(), getY());
schietTimer = 30;
wapenLijst.get(gebruiktWapen).schietKogel();
System.out.println(wapenLijst.size());
if(wapenLijst.get(gebruiktWapen).hoeveelKogels() == 0)
{
gebruiktWapen++;
}
}
}
else
{
if(wapenLijst.size() > 0)
{
gebruiktWapen ++;
}
}
}
}
}
到目前为止,我似乎无法找到错误,因为我做了一些检查来检查索引。谁能帮我解决这个问题?
【问题讨论】:
-
如果您的错误出现在您提供的代码中,您知道它一定在这一行:
wapenLijst.get(gebruiktWapen).schietKogel();使用调试器单步执行您的代码,以查看 wapenLijst 的大小与gebruiktWapen,用于索引 ArrayList。
标签: java indexing arraylist indexoutofboundsexception greenfoot