java - 是否可以在 Java 8 中调试 Lambda

标签 java debugging netbeans lambda java-8

我刚开始玩 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();
    }
}

我可以将断点添加到 r1r2 中的各个行,然后通过步进等方式适本地命中它们。

如果我只在 run() 调用上放置断点,我也可以进入相关的 lambda 表达式。

所以听起来所有调试信息至少可以可用。

编辑:显然以上内容也适用于 Netbeans - 我建议您尝试检查是否可以正常工作。

关于java - 是否可以在 Java 8 中调试 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532051/

相关文章:

java - 如何在android中刷新对话框 fragment 中的 fragment ?

c++ - OllyDbg 无法调试visual studio exe

java - 创建类的不同方法?

java - 如何向同一个对象添加不同的 Action 监听器

java - dom4j : adding PI in text content

r - R 中的高级调试功能?

java - Java Swing 中的级联运行时错误

Javascript - 如何添加两个文本框的结果并在第三个文本框中显示结果?

java - JxMap 调用 browser.loadURL 时默认文件夹在哪里?

java.io.FileNotFoundException :