我可以在IntelliJ中完成整个循环吗?

时间:2018-06-17 06:12:17

标签: java debugging intellij-idea

假设我在IntelliJ中调试以下代码:

for (SomeObject obj1 : iterable1) {
   doSomething(obj1); // <--- I am currently paused on this line
   for (SomeObject obj2 : iterable2) {
      doSomething(obj1, obj2);
   }
}

我想跨过整个内循环来看看内循环如何影响obj1的字段,但是&#34;运行到光标&#34;到第一个右大括号只运行内循环的第一次迭代,而#34;运行到光标&#34;在第二个右大括号结束外循环的迭代,我不再能够访问obj1

手动单步执行每个迭代都不是一个选项,因为可能有数千个项目,并且在大括号之间也没有添加一行,因为它是库的一部分。

有没有什么方法可以简单地在块的末尾跳过循环而不退出包含块?

2 个答案:

答案 0 :(得分:3)

我找到了解决方法:

  1. doSomething(obj1);行暂停时,我右键点击“变量”窗格中的obj1变量并选择“标记对象”,并将其命名为“obj1Instance”
  2. 我让循环运行一次迭代并在“Evaluate Expression”窗口中运行obj1Instance_DebugLabel,这显示了我的所有字段
  3. 我还在这里提交了一个IntelliJ问题:https://youtrack.jetbrains.com/issue/IDEA-194103

答案 1 :(得分:0)

我在doSomething(obj1)行放了一个断点,然后在循环的每次迭代中使用“Resume Program”(即 F9 )返回它。