前段时间,栈长发布了一篇关于 Java 8 Optional.map 的实用文章,留言区就有的人说 Java 8 的语法糖不方便调试,还要视状况使用。java
留言区也有人说 IntelliJ IDEA 早已支持 Java 8 Stream
调试,由于我平时也不多调试,那么我就以 IntelliJ IDEA 来演示下如何调试 Java 8 中的 Stream
链式调用吧。spring
先写一段 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 种方式请点击这里进行阅读。intellij-idea
这个程序是先构建一个 5 个数字的 Stream, 而后再对每一个数字 * 10,再筛选出大于 2000 的数字进行打印。
如何调试每一个链式调用的过程呢?ide
先在第一行打个断点,而后进入调试模式运行,当断点进入时,点击调试窗口的 Trace Current Stream Chain
按钮:spring-boot
而后自动进入当前 Stream
跟踪调试窗口,上面会展现每一个链式调用的选项卡,点击各个选项卡能够看对应每步的跟踪结果。性能
以下面所示:lua
也能够点击左下角的 Flat Mode
进入扁平模式,一次性展现全部跟踪结果:idea
OK,Java 8 Stream
的调试不是问题了, 但我并无找到像 Optional
链式调用的调试方式。spa
好比下面一段 Optional
示例:
/* * 来源公众号:Java技术栈 */ public static void main(String[] args) { String string = Optional.of("hi,") .map(e -> e + "Java") .map(e -> e + "技术") .map(e -> e + "栈").get(); System.out.println(string); }
调试如图所示:
惋惜,Trace Current Stream Chain
按钮是灰色状态,不能进入,由于那个按钮只能被 Stream
调试所用。
那像这种非 Stream 链式调用怎么调试呢?
断点进入后,能够选中须要调试的部分链式代码片段,而后右键选中 Evaluate Expression
菜单(ALT + F8)进入表达式计算窗口:
点击 Evaluate
按钮开始计算:
计算无误,该表达式还能够自由编辑,很是强大。
虽然没有像 Stream
这样专属的调试面板,使用 Evaluate Expression
也能达到调试链式调用的目的吧。关于这个,你还有其余调试方案么?欢迎留言分享!
好了,本次的分享就到这里了,但愿对你们有用。以为不错,在看、转发分享一下哦~
关注Java技术栈微信公众号,栈长将继续分享好玩的 Java 技术,公众号第一时间推送,在公众号后台回复:IDEA,能够获取历史 IDEA 教程,都是干货。
近期热文推荐:
1.Java 15 正式发布, 14 个新特性,刷新你的认知!!
2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!
3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
以为不错,别忘了随手点赞+转发哦!