IntelliJ IDEA内联调试可边看代码边实时查看变量值,无需切窗或打断点:启用路径为Ctrl+Alt+S→构建、执行、部署→调试器→数据视图→勾选“启用内联调试”,需重启调试会话生效;Debug下悬停变量1秒即显值,按Ctrl/Cmd可强制求值;Variables面板支持设值、表格化查看集合、拖入Watches持久监控;Watch表达式支持完整Java语法,但禁用有副作用方法。

在IntelliJ IDEA中边看代码边查变量值,不用切窗口、不打断点也能实时观察表达式结果,这种内联调试能力能直接缩短单次逻辑验证耗时。
启用内联变量提示
打开设置:Ctrl+Alt+S → 构建、执行、部署 → 调试器 → 数据视图 → 勾选“启用内联调试”。
勾选后,调试时编辑器中变量名右侧会自动显示当前值,例如 String name = "Alice" 旁出现 "Alice";若未显示,请确认当前处于Debug模式且已命中断点。
【必须重启调试会话才生效】 修改该选项后,已运行的调试进程不会自动刷新内联提示,需终止当前会话并重新启动Debug。
鼠标悬停即时求值
在Debug状态下,将鼠标悬停在任意变量或表达式上(如 user.getRoles().size()),1秒后弹出工具提示显示计算结果。
悬停时按住Ctrl(Windows/Linux)或Cmd(Mac)可强制触发求值,尤其适用于惰性加载对象或未初始化字段——此时提示框底部会出现“Click to evaluate”链接,点击后立即执行并展示真实值。
注意:悬停求值依赖调试器上下文,若变量超出当前栈帧作用域(如已出栈的局部变量),提示将显示“unavailable”而非报错。
Variables面板深度操作
第一步:调试启动后,确保Debug工具窗口已打开(Alt+5),点击“Variables”选项卡。
第二步:右键任意变量 → 选择“Set Value”,可手动修改基础类型值(如把int age = 25改成30),修改后继续Step Over即可验证逻辑分支走向。
第三步:右键复杂对象(如List
第四步:拖拽变量名到Watches区域,或右键→“Add to Watches”,后续所有断点命中时该表达式都会固定显示在顶部监视栏,无需反复查找。
Watch表达式动态监控
方法一:在Debug工具窗口的Watches选项卡中点击“+”号 → 输入表达式 → 回车,例如 order.getItems().stream().filter(i -> i.getPrice() > 100).count()。
方法二:快捷键Alt+F8调出Evaluate Expression窗口 → 输入相同表达式 → 点击“Evaluate”,结果实时显示且支持历史记录回溯。
方法三:在Variables面板空白处右键 → “New Watch” → 直接粘贴表达式,适合一次性快速添加多个监控项。
Watch表达式支持完整Java语法,但【禁止调用有副作用的方法】,例如 userService.save(user) 会在监控时真实执行保存操作,导致数据污染。
内联调试失效排查
检查编译输出是否包含调试信息:File → Project Structure → Modules → 选中模块 → Sources → 确认“Exclude output paths”未勾选,且Output path指向正确target/classes目录。
若仍不显示内联值,在Variables面板中右键任意变量 → “Show Referring Objects”,若提示“Object has been garbage collected”,说明JVM已回收该实例,需在更早断点处设置或启用“Keep frames alive”选项。
最后验证JDK版本兼容性:IntelliJ IDEA 2026.2要求JDK 17+才能完整支持内联调试,低于JDK 11的项目会降级为仅显示简单类型值。


















