You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ Ultimate 2018.1中Lambda表达式无法调试的问题求助

解决IntelliJ 2018.1调试Lambda表达式无法进入的问题

我之前也踩过老版本IntelliJ调试Lambda的坑,结合你的情况,给你几个实用的解决方案:

  • 直接在Lambda内部代码行加断点
    别只在Lambda的箭头->处加断点,直接点击每个System.out.println行号旁的断点标记,或者在Lambda代码块的第一行加断点。启动调试后,程序运行到这里时应该能直接进入内部执行。

  • 开启合成方法调试选项
    老版本IntelliJ默认可能关闭了对合成方法的调试支持,而Lambda是编译器生成的合成类/方法,你可以这样设置:

    1. 打开File > Settings(Windows/Linux)或IntelliJ IDEA > Preferences(Mac)
    2. 导航到Build, Execution, Deployment > Debugger > Stepping
    3. 勾选Allow stepping into synthetic methods选项,点击确定后重启调试试试
  • 临时替换为匿名内部类调试
    如果上面的方法都不行,可以临时把Lambda转换成匿名内部类,调试完成后再改回来,比如你的代码可以改成这样:

    public TestLambda lambdaExpression() { 
        int width=10; 
        // 替换Lambda为匿名内部类
        return new TestLambda() {
            @Override
            public void draw() { // 假设TestLambda是包含draw方法的函数式接口
                System.out.println("Drawing "+width); 
                System.out.println("Drawing1 "+width); 
                System.out.println("Drawing2 "+width); 
            }
        }; 
    }
    

    匿名内部类的调试支持在老版本IDE里更稳定,肯定能进入每一行代码。

  • 考虑升级IDE版本(可选)
    如果你能升级的话,IntelliJ 2019及以后的版本对Lambda和Stream的调试支持有很大提升,Java Stream Debugger也能正常使用,从根本上解决这类问题。

内容的提问来源于stack exchange,提问作者JTN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:23:07