Skip to content
程序猿DD程序猿DD
主页
最新发布
Java新特性
玩转IDEA
旧版博客open in new window
社区交流open in new window
  • 基础配置

    • 新建项目的默认配置
      • 侧边栏显示文件更新时间
        • 护眼配置方案
        • 性能优化

          • 换M1芯片后的使用建议
            • 定制IDEA的内存设置
              • 内存和启动参数设置
              • 调试技巧

                • 条件断点
                  • 优雅地抛异常
                    • 操作回退:Reset Frame
                      • 操作回退:Jump To Line
                        • 优雅调试stream操作
                        • 重构技巧

                          • 编辑器

                            • Markdown编辑器
                            • 插件宝库

                              • Jump To Line:跳转任意行
                                • Java Stream调试插件
                                  • 插件:Java Stream Debugger
                                    • 调试Stream操作
                                    • 代码缩略图:CodeGlance Pro
                                      • API调试:Restful Fast Request
                                        • 文件树增强:Show Comment

                                        Java Stream的调试插件

                                        程序猿DD原创2022年5月20日
                                        • IntelliJ IDEA
                                        大约 2 分钟

                                        此页内容
                                        • 插件:Java Stream Debugger
                                        • 调试Stream操作

                                        # Java Stream的调试插件

                                        Stream操作是Java 8推出的一大亮点!虽然java.util.stream很强大,但依然还是有很多开发者在实际工作中很少使用,其中吐槽最多的一个原因就是不好调试,一开始确实是这样,因为stream这样的流式操作在DEBUG的时候,是一行代码,直接下一步的时候,其实一下就过去了好多操作,这样我们就很难判断到底是里面的哪一行出了问题。不过,现在的话,在强大的IDEA插件支持下,stream的调试其实也没那么难了,下面就来学习一下在IDEA中如何调试stream操作吧。

                                        # 插件:Java Stream Debugger

                                        如果你用的IDEA版本比较新的话,这个插件已经是自带的了,就不需要安装了。如果还没安装的话,就手工安装一下,然后继续下面的操作。

                                        # 调试Stream操作

                                        视频演示:点击这里查看open in new window

                                        先来看下面这样的这段代码:

                                        public class StreamTest {
                                        
                                            @Test
                                            void test() {
                                                List<String> list = List.of("blog.didispace.com", "spring4all.com", "openwrite.cn", "www.didispace.com");
                                        
                                                List<String> result = list.stream()
                                                        .filter(e -> e.contains("didispace.com"))
                                                        .filter(e -> e.length() > 17)
                                                        .toList();
                                        
                                                System.out.println(result);
                                            }
                                        
                                        }
                                        

                                        这段代码的逻辑是通过stream去过滤list集合中的元素,由于有两个filter,所以当出现问题的时候,可能不知道具体是哪个filter中出了问题。

                                        借助强大的IDEA,我们在遇到stream的时候,只需要点击下图中的按钮:

                                        此时会弹出一个Stream操作的跟踪窗口:

                                        该窗口中的标签就是这个stream操作的每一步,我们可以通过点击标签去查看每一步执行前和执行后的结果去判断这里的filter是否执行正确。

                                        是不是一下感觉简单了很多呢?

                                        好了,今天的分享就到这里,如果你还没有用过这个调试功能的话, 赶紧打开IDEA试一试吧!

                                        上次编辑于: 2022/5/25 02:26:17
                                        贡献者: dd
                                        上一页
                                        Jump To Line:跳转任意行
                                        下一页
                                        代码缩略图:CodeGlance Pro
                                        © 2016 - 2022 didispace.com 版权所有
                                        沪ICP备14037150号-3
                                        Copyright © 2022 程序猿DD