gpt4 book ai didi

java - 错误 : “Thread-1” java. lang.IndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 07:57:11 26 4
gpt4 key购买 nike

我有一些琐事/解读机器人的代码,该机器人在服务器内运行,用户尝试在时间结束之前猜测问题的答案。代码编译得很好,但是在运行线程大约 30-45 分钟后,我收到一个错误,并且琐事停止工作。这是我得到的错误:

Exception in thread "Thread-1" java.lang.IndexOutOfBoundsException: 
Index: 973, Size 965
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at org.emulinker.kaillera.model.impl.Trivia.run(Trivia.java:251)
at java.lang.Thread.run(Unknown Source)

这是org.emlinker.kaillera.model.impl.Trivia的代码,从第249行开始:

        else{
temp = generator.nextInt(questions.size() - 1);
questions_count = questions_num.get(temp);
questions_num.remove(temp);
}

知道如何解决此问题吗?

最佳答案

我不确定 Java 还可以为您提供哪些其他信息以使这一切变得更容易。

它会告诉您准确Trivia.java:251、集合大小965以及您尝试使用的索引973。当然这足以继续下去了吗?

通常情况下,我不太可能试图找出这几百行中的哪一行是第 251 行,但是,我现在很无聊,所以我会尝试一下(并且,无论如何,从那时起,您就用相关行替换了大量的代码转储)。错误的行似乎是:

 else{
temp = generator.nextInt(questions.size() - 1);
questions_count = questions_num.get(temp); // << THIS ONE
questions_num.remove(temp);
}

现在我不会详细介绍您似乎认为满足“展示问题的最小示例”的“ war 与和平”风格的代码片段:-)

但我敢打赌,questionsquestions_num 在某些地方的大小有所不同,假设它们甚至大小相同在过去的某个时刻。很可能由于上面的 else block 中的第三行,或者更准确地说,缺少以相同方式影响问题的第四行,它们出现了分歧。

事实上,尽管 questions_num 的大小只有 965,但使用 questions 从生成器中得到了 973 个,这使得这几乎是确定的。

也许让它们保持同步是个好主意。

关于java - 错误 : “Thread-1” java. lang.IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com