IntelliJ IDEA中如何优雅的调试Java Stream操作
Stream操作是Java 8推出的一大亮点!虽然java.util.stream
很强大,但依然还是有很多开发者在实际工作中很少使用,其中吐槽最多的一个原因就是不好调试,一开始确实是这样,因为stream这样的流式操作在DEBUG的时候,是一行代码,直接下一步的时候,其实一下就过去了好多操作,这样我们就很难判断到底是里面的哪一行出了问题。不过,现在的话,在强大的IDEA插件支持下,stream的调试其实也没那么难了,下面就来学习一下在IDEA中如何调试stream操作吧。
插件:Java Stream Debugger
如果你用的IDEA版本比较新的话,这个插件已经是自带的了,就不需要安装了。如果还没安装的话,就手工安装一下,然后继续下面的操作。
本文收录在了我正在连载的《玩转IDEA专栏》,该系列该用电子书的方式编写,如果想要沉浸式阅读学习的话,可以访问Web版本:https://www.didispace.com/idea-tips/
调试Stream操作
视频演示:点击这里查看
先来看下面这样的这段代码:
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试一试吧!如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!
欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源
相关文章
- Java 并发工具包 java.util.concurrent 用户指南
- 一文读懂java中的Reference和引用类型
- Java Annotation 应用 -- 导出Excel表格
- Idea:Java文件打包可执行的JAR文件,并指定JDK编译版本
- Java Date Time 教程-java.util.Date
- Scala和Java的27个主要区别
- Java项目(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)
- Java详解,java后端应届生面试题
- 基于 Java(SSM) 的校园二手交易平台【100010203】
- java什么是方法的重载(Overload)
- Error running 'dt-assets-monitor [clean]': Cannot run program "C:Program Files (x86)Javajdk1.8.0_73binjava.exe" (in directory "E:codedt-assets-monitor")
- java.util.NoSuchElementException问题定位
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- java读取和写入excel
- 【Java】Java学习笔记-多线程
- 【JAVA】Exception in thread "main" java.lang.NoClassDefFoundError
- Java操作Mongodb 保存/读取java对象到/从mongodb
- Java 8的6个问题
- How to improve Java's I/O performance( 提升 java i/o 性能)
- Java与Netty实现高性能高并发
- Java多线程编程那些事:volatile解惑--转
- Java小白入门200例62之java中日期查询常用实例
- idea中,发现某个java语法在低版本中不支持时的解决办法
- Java idea 创建SqlMapConfig.xml,需要新增一个mybatis-cfg.xml模板
- 解决Java使用response下载文件报错,并总结可能出错的原因: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
- c#Main()方法,java 是小写main
- Java命令行参数
- 桥梁模式练习:飞机信息系统(JAVA练习项目&IDEA)