获取java.lang.indexoutofboundsexception,但不明白为什么?

时间:2014-04-21 01:30:30

标签: java indexoutofboundsexception

List<String> s = getConfig().getStringList("clanowner");
if (!(s.isEmpty())) {

    for (String str : s) {
        String[] words = str.split(":");
        menu.clanowner.put(words[0], words[1]);
    }
}

所以,我得到了一个java.lang.indexoutofboundsexception,但我不知道为什么会这样。有人请帮助我吗?

1 个答案:

答案 0 :(得分:0)

我的预感是

String[] words = str.split(":");

可能不会返回长度为2的数组。将for语句的最后一行更改为

if(words != null && words.length > 1) {
    menu.clanowner.put(words[0], words[1]);
}

应该消除IndexOutOfBoundsException。

作为一种调试练习,它还有助于准确了解它的内容,因此请确保

List<String> s = getConfig().getStringList("clanowner");

通过调试或手动插入应该起作用的值,或者两者兼而有之,确实为您提供了应该生成长度为2或更长的数组的输出。