当列表中填充了对象时,超出范围的异常

时间:2013-11-15 01:50:56

标签: java

所以我不知道为什么我在这一行中得到一个outofbound错误

            bCountry = countriesList.get(loc); 

在我的菜单中我要求用户输入两个字母的国家代码,我修剪空白,并将其转换为大写,因为整个列表是大写的

然后我将代码作为构造函数中的参数传递

 public CountryComponent(String bCode) throws IOException
{
    all = false;
    String aCode = bCode;

    getData();
}

getData方法从csv文件中提取信息并使用数据创建对象,然后调用其他几种方法向对象添加其他信息

问题是当我去尝试绘制特定对象时,其他一切都很好

它似乎从列表中找不到菜单中输入的国家/地区代码,我不知道为什么

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:371)
at java.util.ArrayList.get(ArrayList.java:384)
at CountryComponent.paintComponent(CountryComponent.java:204)

底线是“红色”彩色异常,这是一个更大的列表,如果需要则为idk。

1 个答案:

答案 0 :(得分:3)

您已经设法为我们提供了大量代码,但没有一个是正确的代码。你的问题仍然是,当你打电话时:

bCountry = countriesList.get(loc); 

loc的值为-1,这是非法的。

找出值为-1的原因,然后解决该问题。