IDEA如何调试Stream API

Stream API现在在实际开发中应用非常广泛,经常会遇到需要调试Stream API的场景,这篇文章主要讲解如何使用IDEA调试Stream

@Test
   public void test(){
      Stream.of(10, 20, 30, 40, 50).mapToInt(e->e*10)
                                             .filter(e->e>200)
                                                .forEach(System.out::println);
   }

调试代码如上所示,这里简单的创建一个Stream,调用mapToInt对每个元素乘以10,然后通过filter过滤出结果大于200的打印出来,这个操作非常简单,本文主要讲解如何调试

如上图所示,先在第一行 打断点,然后点击debugRun,进入调试模式,此时点击图中红框所示的"Trace Current Stream Chain"按钮,出现下图:

会显示出Stream接口的全部操作,点击mapToInt,出现下图,得到mapToInt的结果

点击filter,出现下图,得到filter的结果

或者直接点击左下角的Flat Mode,出现下图,直接显示mapToInt,filter的结果

到此Stream API的调试讲解完成。

接下来讲解下 Optional 链式调用的调试方式

   @Test
   public void test1(){
      String str = Optional.of("hello,world")
              .map(e->e+"hi")
              .map(e->e+"debug")
              .map(e->e+"test").get();
      System.out.println(str);
   }

调试代码如上图所示,在第一行,打上断点,debug运行,如图:

发现"Trace Current Stream Chain"按钮是灰色的,不可点击,此时可以如图所示

选择:

Optional.of("hello,world")
              .map(e->e+"hi")
              .map(e->e+"debug")
              .map(e->e+"test")

点击右键,选择Evaluate Expression

在接下来的弹窗点击Evaluate,即可得到计算的结果

这个Evaluate Expression可以在调试过程中,选择任意需要调试的代码,执行得到结果

相关推荐
爬山算法8 分钟前
Maven(6)如何使用Maven进行项目构建?
java·maven
.生产的驴12 分钟前
Electron Vue框架环境搭建 Vue3环境搭建
java·前端·vue.js·spring boot·后端·electron·ecmascript
爱学的小涛20 分钟前
【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解
java·开发语言·笔记·后端·nio
吹老师个人app编程教学20 分钟前
详解Java中的BIO、NIO、AIO
java·开发语言·nio
爱学的小涛21 分钟前
【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
java·开发语言·笔记·后端·nio
莫负初24 分钟前
Pytest 使用Pycharm右键直接运行测试脚本正常,控制台命令pytest运行收集不到用例无法正常测试 no tests ran in 0.01s
ide·pycharm·pytest
北极无雪25 分钟前
Spring源码学习:SpringMVC(4)DispatcherServlet请求入口分析
java·开发语言·后端·学习·spring
琴智冰29 分钟前
SpringBoot
java·数据库·spring boot
binqian29 分钟前
【SpringSecurity】基本流程
java·spring
猿小蔡-Cool1 小时前
CPU 多级缓存
java·spring·缓存