我有一个混合了 Java 和 Groovy 代码的代码库。对于 Groovy 代码中的迭代,我们倾向于使用闭包:
String[] strings = ["First", "Second", "Third"]
strings.each { string ->
println string
}
当我在 IntelliJ IDEA (v. 11) 中通过一次步进一行来调试它时,在strings.each()
(即println string
) 中执行的代码被跳过。我可以在该行放置一个断点println
,并且可以对其进行调试,但这是一个可以避免的小变通方法。
有没有办法配置 intelliJ 不跳过 Groovy 闭包?File->Settings->Debugger->Groovy中没有适用的选项。
编辑:
为了澄清我期望 intelliJ 做什么:
假设我有这样的 Java 风格迭代:
for (String string : strings) {
println string
}
如果我使用“Step over”,调试器会毫无问题地进入迭代。我可以继续“越过”并且仍然处于循环中,直到没有更多对象可以迭代。这就是我对上述关闭的期望。
在您必须手动设置断点的一两个闭包的情况下,这可能不是问题。但是如果有很多,“自动”进入它们会非常巧妙。