终于要憋一篇博客了,现在代码里面全部都是Stream,刚开始调试起来很不方便, idea 针对于 Java 8 Stream
调试,来演示下如何调试 Java 8 中的 Stream
链式调用
首先写一段Java8 Stream的实例
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
创建方式
这个程序是先构建一个 5 个数字的 Stream, 然后再对每个数字 * 10,再筛选出大于 2000 的数字进行打印。
如何调试每个链式调用的过程呢?
先在第一行打个断点,然后进入调试模式运行,当断点进入时,点击调试窗口的 Trace Current Stream Chain
按钮:
然后自动进入当前 Stream
跟踪调试窗口,上面会展示每个链式调用的选项卡,点击各个选项卡可以看对应每步的跟踪结果。
也可以点击左下角的 Flat Mode
进入扁平模式,一次性展示所有跟踪结果
OK,Java 8 Stream
的调试不是问题了, 但我并没有找到像 Optional
链式调用的调试方式。
比如下面一段 Optional
示例:
那像这种非 Stream 链式调用怎么调试呢?
断点进入后,可以选中需要调试的部分链式代码片断,然后右键选中 Evaluate Expression
菜单(ALT + F8)进入表达式计算窗口:
计算无误,该表达式还可以自由编辑,非常强大。
参考:https://www.cnblogs.com/javastack/p/13784256.html