【发布时间】:2015-07-28 17:46:24
【问题描述】:
如何在 IntelliJ 的 lambda 表达式中放置条件断点。例如。我有一个声明stream().map(s -> s * 2).forEach(...)。我想在这个语句上放置一个条件断点s == 5。
IntelliJ 无法将 s 识别为有效。这是为什么呢?
【问题讨论】:
标签: intellij-idea lambda java-8
如何在 IntelliJ 的 lambda 表达式中放置条件断点。例如。我有一个声明stream().map(s -> s * 2).forEach(...)。我想在这个语句上放置一个条件断点s == 5。
IntelliJ 无法将 s 识别为有效。这是为什么呢?
【问题讨论】:
标签: intellij-idea lambda java-8
这不是 IntelliJ 14 的一部分,但它将成为 IntelliJ 15 的一部分。
您可以看到它是features being added 的一部分,您可能可以下载EAP Build 并检查它是否已经实现了此功能。
话虽如此,在 IntelliJ 14 中,如果您将 lambda(暂时出于调试目的)更改为代码块,您仍然可以在 lambda 中停止。
stream().map(s -> { return s * 2; }).forEach(x -> {System.out.println(x); });
IntelliJ 确实让我在 lambda 块中设置了一个断点。它仍然会抱怨/建议可以在没有代码块的情况下将其简化为 lambda,但是您可以在调试时暂时保留它,并在确定一切正常后将其更改为更简单的表达式。
【讨论】: