IT科技类资讯

IntelliJ IDEA 调试 Java 8,实在太香了

时间:2010-12-5 17:23:32  作者:数据库   来源:人工智能  查看:  评论:0
内容摘要:前段时间,栈长发布了一篇关于 Java 8 Optional.map 的实用文章,留言区就有的人说 Java 8 的语法糖不方便调试,还要视情况使用。留言区也有人说 IntelliJ IDEA 早已支

前段时间,调试栈长发布了一篇关于 Java 8 Optional.map 的实太实用文章,留言区就有的调试人说 Java 8 的语法糖不方便调试,还要视情况使用。实太

留言区也有人说 IntelliJ IDEA 早已支持 Java 8 Stream 调试,调试因为我平时也很少调试,实太那么我就以 IntelliJ IDEA 来演示下如何调试 Java 8 中的调试 Stream 链式调用吧。

先写一段 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 种方式请点击这里进行阅读。

这个程序是实太先构建一个 5 个数字的 Stream, 然后再对每个数字 * 10,源码库再筛选出大于 2000 的调试数字进行打印。

如何调试每个链式调用的实太过程呢?

先在第一行打个断点,然后进入调试模式运行,调试当断点进入时,实太点击调试窗口的调试 Trace Current Stream Chain 按钮:

然后自动进入当前 Stream 跟踪调试窗口,上面会展示每个链式调用的选项卡,点击各个选项卡可以看对应每步的跟踪结果。

如下面所示:

也可以点击左下角的 Flat Mode 进入扁平模式,一次性展示所有跟踪结果:

OK,Java 8 Stream 的服务器租用调试不是问题了, 但我并没有找到像 Optional 链式调用的调试方式。

比如下面一段 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 按钮开始计算:

计算无误,该表达式还可以自由编辑,非常强大。

copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap