有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java eclipse迭代器调试器问题

[编辑:我忘了提到我正在调试的是JUnit测试用例。这是个问题吗?]

我在eclipse中遇到了一个非常奇怪的问题。 (我不熟悉eclipse中的调试,所以请发布您的想法……)

当我在某一行时,它只是停下来继续代码。它仍然在同一行中,尽管我按了F6 thounsand次。在很短的一段时间内,该行未标记,但随后再次标记。没有例外

这一行看起来像:

while (someIterator.hasNext()) {...}

我一点也不明白。真奇怪。到底怎么了。 如果迭代器有next,它必须进入while循环,但如果不是,它必须跳过while循环。我就是不明白

非常感谢你的回答。我现在陷入了困境

面向Web开发人员的EclipseJavaEEIDE。 版本:Helios发行版 构建id:20100617-1415


共 (3) 个答案

  1. # 1 楼答案

    查看“变量””视图,查看每次F6点击后的情况

  2. # 3 楼答案

    将循环的主体放在单独的行上,这样就可以看到问题所在。如果你把所有的东西都放在一条线上,Eclipse可能不会太清楚地显示发生了什么。如果集合类是标准的,那么问题不太可能出在迭代器上,除非您设法将链表链接到一个循环中,这是非常不可能的

    (从我下面的注释展开)还要确保调用next(),否则迭代器将永远无法前进

    糟糕:

    while (i.hasNext()) {
      //...
    }
    

    好的:

    while (i.hasNext()) {
      Object o = i.next();
      //...
    }
    

    最佳(假设为仿制药)

    for (Foo o : list) {
      //....
    }