【问题标题】:Unsolvable ArrayIndexOutOfBoundsException无法解决的 ArrayIndexOutOfBoundsException
【发布时间】:2016-07-28 11:07:24
【问题描述】:

在使用 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,但是当更改为不同的片段,然后再次返回,它恢复了奇怪的、无法解释的错误。

【问题讨论】:

  • 您是否尝试过在调试器中运行代码并检查变量的实际状态?

标签: android-studio runtime-error indexoutofboundsexception


【解决方案1】:
for (int j = 0; j < articles.size() - 1; i++) {
                if (articles.get(j).title == titles[i]) {
                    doesContain = true;
                }
            }

这段代码是一个无限循环。你在i++ 部分打错了,这应该是j++(在内部for循环中)

【讨论】:

  • 你不会是第一个犯这个错误的人:)
猜你喜欢
  • 1970-01-01
  • 2012-03-22
  • 2019-04-20
  • 1970-01-01
  • 2016-02-15
  • 1970-01-01
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多