这是我得到的错误,我不知道为什么。
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
我认为这是数组列表,但是当我尝试使用计数器+ 1时它也没有用。
答案 0 :(得分:0)
使用您提供的部分代码,您似乎在diceData
ArrayList中只有一个元素。您需要在ArrayList中包含与NUMBER_OF_SIDES
一样多的元素,以便循环工作而不会抛出异常。
您可以打印diceData.size()
来检查是否等于或大于NUMBER_OF_SIDES。
答案 1 :(得分:0)
您的以下代码会导致问题 -
for (int col= 0; col < NUMBER_OF_SIDES; col++)
{
int counter = 0;
//Add each of the 6 letters to the die ArrayList representing
//the die letters by calling method addLetter in class Die
die.addLetter(diceData.get(counter).toString());
counter++;
}
背后的原因是,
您的diceData
arraylist引用仅被实例化,但它不包含任何值。即。diceData
数组列表为空。
所以要避免这种情况,请执行以下操作 -
for (int col= 0; col < NUMBER_OF_SIDES; col++)
{
int counter = 0;
//Add each of the 6 letters to the die ArrayList representing
//the die letters by calling method addLetter in class Die
if(!diceData.isEmpty())
{
die.addLetter(diceData.get(counter).toString());
counter++;
}
}
此外,我仍然无法理解为什么你总是在上面的foor循环中初始化和递增计数器。因为我在你的代码中没有看到任何使用它。