首页 > 解决方案 > 无法调试 Lambda 表达式 IntelliJ Ultimate 2018.1

问题描述

我在调试模式下运行 Junit 测试用例,它适用于正常的方法调用。当我尝试调试 lambda 表达式时,控制不会进入内部。

我尝试安装 Java Stream Debugger,但尚未扩展对 IntelliJ Ultimate 2018.1 IDE 的支持

public TestLambda lambdaExpression() {
        int width=10;
        TestLambda d2;
        //with lambda
        return d2=()->{
            System.out.println("Drawing "+width);
            System.out.println("Drawing1 "+width);
            System.out.println("Drawing2 "+width);
        };
    }

我希望调试器指向每个 sysout 语句。我可以使用 Eclipse 调试相同的表达式。

标签: javadebuggingintellij-idealambdajava-8

解决方案


根据评论,我更新了代码并且效果很好。我的实际问题与通过 spring 进行的 Bean 初始化有关,因此配置文件中没有写入任何执行。因此调试器没有进入内部。

更新代码:

public void lambdaExpression() {
        int width=10;
        //with lambda
        TestLambda d2=()->{
            System.out.println("Drawing "+width);
            System.out.println("Drawing "+width);
            System.out.println("Drawing "+width);
        };

        d2.draw();
    }

推荐阅读