我刚开始玩 Java 8 Lambda,我注意到我无法在 NetBeans IDE 中调试它们。如果我尝试将断点附加到以下代码,我会得到一个变量断点,这绝对不是我想要的:
private EventListener myListener (Event event) ->
{
command1;
command2; // Set Breakpoint here
command3;
};
NetBeans 将调试器附加到“myListener”变量,但我无法进入 EventListener 本身,所以看不到其中发生了什么。
是否缺少调试信息,这是 NetBeans 中缺少的功能还是根本无法在 Java 中调试 Lambda?
最佳答案
它在 Eclipse 中对我有用。例如:
public class Foo {
private static final Runnable r1 = () -> {
System.out.println("r1a");
System.out.println("r1b");
};
public static void main(String[] args) {
Runnable r2 = () -> {
System.out.println("r2a");
System.out.println("r2b");
};
r1.run();
r2.run();
}
}
我可以将断点添加到 r1
和 r2
中的各个行,然后通过步进等方式适本地命中它们。
如果我只在 run()
调用上放置断点,我也可以进入相关的 lambda 表达式。
所以听起来所有调试信息至少可以可用。
编辑:显然以上内容也适用于 Netbeans - 我建议您尝试检查您是否可以正常工作。
关于java - 是否可以在 Java 8 中调试 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532051/