查看原文
其他

Java 8 的 Stream 不好调试?试试 IDEA 的调试神器 Stream Trace!

小哈学Java 2024-04-16

👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战(图文+视频) / Java 学习路线 / 一对一提问 / 学习打卡


目前, 正在星球内部带小伙伴做第一个项目:前后端分离博客,手摸手,后端 + 前端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,直到项目上线。目前已更新了76小节,累计10w+字,讲解图:513张,还在持续爆肝中.. 后续还会上新更多项目,如秒杀系统, 在线商城, IM即时通讯等,戳我加入学习,已有200+小伙伴加入


Java的Stream编程给调试带来了极大的不便,IDEA推出了stream trace功能,可以详细看到每一步操作的关系、结果,非常方便进行调试。

初遇Stream Trace

这里简单将字符串转成它的字符数,并设置断点开启debug模式。

img

如上图所示,可以看到每一步操作的元素个数、操作的结果、元素转换前后的对应关,非常清晰明了;还可以查看具体的对象内容。

使用StreamTrace

StreamTrace只有在debug模式下才能使用,当在Stream代码上设置断点后,启动debug,点击流按钮,如图所示。

图片

点击后,默认Split 模式显示。

图片

可以点击左下方按钮切换到FlatMode模式,当然也可以再切换回去。

图片

实战演示

这里演示一段字符转长度并过滤长度小于5的stream操作

@Test    
public void TestTrace() {
    Stream.of("beijing","tianjin","shanghai","wuhan")                
        .map(String::length)               
        .filter(e->e>5)               
        .collect(Collectors.toList()); 
}
图片

👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战(图文+视频) / Java 学习路线 / 一对一提问 / 学习打卡


目前, 正在星球内部带小伙伴做第一个项目:前后端分离博客,手摸手,后端 + 前端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,直到项目上线。目前已更新了76小节,累计10w+字,讲解图:513张,还在持续爆肝中.. 后续还会上新更多项目,如秒杀系统, 在线商城, IM即时通讯等,戳我加入学习,已有200+小伙伴加入

1. 北京的IT崩盘了么?

2. 讲的太通透了,切面 AOP 优雅的实现权限校验!

3. Java8 Stream 一行代码实现数据分组统计、排序、最大值、最小值、平均值、总数、合计

4. 面试官:post为什么会发送两次请求?

最近面试BAT,整理一份面试资料Java面试BATJ通关手册,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。

PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。

“在看”支持小哈呀,谢谢啦

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存