无法解决的 ArrayIndexOutOfBoundsException
Unsolvable ArrayIndexOutOfBoundsException
在使用 for 循环执行一段简单的代码时,我遇到了这个无法解决的错误,因为索引没有被编程为超过标题数组的最大索引 (5),但我收到错误声明无论我是否将 for(i) 语句更改为任何其他数字(1、2、3 等)的常数最大值,我都在第 4 行请求索引 5
for (int i = 0; i < titles.length - 1; i++) {
boolean doesContain = false;
for (int j = 0; j < articles.size() - 1; i++) {
if (articles.get(j).title == titles[i]) {
doesContain = true;
}
}
if (!doesContain) {
class_article newArticle = new class_article();
newArticle.title = titles[i];
newArticle.body = bodies[i];
newArticle.category = categories[i];
newArticle.date = new Date(Integer.valueOf(dateDays[i]), Integer.valueOf(dateMonths[i]), Integer.valueOf(dateYears[i]));
newArticle.read = reads[i] == 1;
newArticle.done = dones[i] == 1;
articles.add(newArticle);
}
}
如能就此恼人的问题提供任何帮助,我们将不胜感激。
[编辑] 有一次我尝试将 i 的最大索引设置为 1,它加载了 2 个正在加载的项目的应用程序,除了它们是同一篇文章,而不是文章 1 和 2,但是当更改为一个不同的片段然后再次返回它恢复了它奇怪的、无法解释的错误。
for (int j = 0; j < articles.size() - 1; i++) {
if (articles.get(j).title == titles[i]) {
doesContain = true;
}
}
这段代码是一个死循环。你在 i++
部分打错了,这应该是 j++
(在内部 for 循环中)
在使用 for 循环执行一段简单的代码时,我遇到了这个无法解决的错误,因为索引没有被编程为超过标题数组的最大索引 (5),但我收到错误声明无论我是否将 for(i) 语句更改为任何其他数字(1、2、3 等)的常数最大值,我都在第 4 行请求索引 5
for (int i = 0; i < titles.length - 1; i++) {
boolean doesContain = false;
for (int j = 0; j < articles.size() - 1; i++) {
if (articles.get(j).title == titles[i]) {
doesContain = true;
}
}
if (!doesContain) {
class_article newArticle = new class_article();
newArticle.title = titles[i];
newArticle.body = bodies[i];
newArticle.category = categories[i];
newArticle.date = new Date(Integer.valueOf(dateDays[i]), Integer.valueOf(dateMonths[i]), Integer.valueOf(dateYears[i]));
newArticle.read = reads[i] == 1;
newArticle.done = dones[i] == 1;
articles.add(newArticle);
}
}
如能就此恼人的问题提供任何帮助,我们将不胜感激。
[编辑] 有一次我尝试将 i 的最大索引设置为 1,它加载了 2 个正在加载的项目的应用程序,除了它们是同一篇文章,而不是文章 1 和 2,但是当更改为一个不同的片段然后再次返回它恢复了它奇怪的、无法解释的错误。
for (int j = 0; j < articles.size() - 1; i++) {
if (articles.get(j).title == titles[i]) {
doesContain = true;
}
}
这段代码是一个死循环。你在 i++
部分打错了,这应该是 j++
(在内部 for 循环中)