且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

更新时间:2022-08-17 13:35:19

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

留言区也有人说 IntelliJ IDEA 早已支持 Java 8 Stream 调试,因为我平时也很少调试,那么我就以 IntelliJ IDEA 来演示下如何调试 Java 8 中的 Stream 链式调用吧。

先写一段 Java 8 Stream 示例:

/*
* 来源公众号:Java技术栈 
*/
public static void main(String[] args) {
    Stream.of(100, 200, 300, 400, 500)
            .mapToLong(e -> e * 10)
            .filter(e -> e > 2000)
            .forEach(System.out::println);
}

这里只演示了一种 Stream 创建方式,Java 8 创建 Stream 的 10 种方式请点击这里进行阅读。


这个程序是先构建一个 5 个数字的 Stream, 然后再对每个数字 * 10,再筛选出大于 2000 的数字进行打印。


如何调试每个链式调用的过程呢?


先在第一行打个断点,然后进入调试模式运行,当断点进入时,点击调试窗口的 Trace Current Stream Chain 按钮:

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

然后自动进入当前 Stream 跟踪调试窗口,上面会展示每个链式调用的选项卡,点击各个选项卡可以看对应每步的跟踪结果。

如下面所示:IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

调试如图所示:

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

可惜,Trace Current Stream Chain 按钮是灰色状态,不能进入,因为那个按钮只能被 Stream 调试所用。


那像这种非 Stream 链式调用怎么调试呢?


断点进入后,可以选中需要调试的部分链式代码片断,然后右键选中 Evaluate Expression 菜单(ALT + F8)进入表达式计算窗口:

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

点击 Evaluate 按钮开始计算:

IntelliJ IDEA 调试 Java 8 Stream,实在太香了!

计算无误,该表达式还可以***编辑,非常强大。


虽然没有像 Stream 这样专属的调试面板,使用 Evaluate Expression 也能达到调试链式调用的目的吧。关于这个,你还有其他调试方案么?欢迎留言分享!


好了,本次的分享就到这里了,希望对大家有用。觉得不错,在看、转发分享一下哦~


关注Java技术栈微信公众号,栈长将继续分享好玩的 Java 技术,公众号第一时间推送,在公众号后台回复:IDEA,可以获取历史 IDEA 教程,都是干货。