前言
Java8新增的Stream、Lambda特性极大的方便了日常中对集合数据的处理过程,代码简洁优雅。但同时也引入了一个问题,难于调试!接下来我给大家介绍个工具Java stream debugger,它是由idea自带的,如果你的idea版本过低的话可以去插件商店去下载,这个工具可以让我们清晰的看到流中具体做了什么操作,首先贴出我们要调试的代码。
public static void testDeBug() {
int[] ints = IntStream.of(10, 20, 40, 30, 56, 80)
.filter(e -> e > 20)
.map(e -> e * 2)
.sorted()
.toArray();
for (int i : ints) {
System.out.println(i);
}
}
我们可以看到这段代码对我们的数据做了过滤重新赋值和排序最后给他转成一个int数组,然后我们打印了这个数组,接下来我们看一下怎么调试它
首先我们debug运行一下注意我图上箭头标的那个图标鼠标放上去
上面有个描述trace current stream chain翻译成中文就是追踪电流流链,简而言之就是看我们流中到底做了一些什么操作接下来我们点开它
然后会得到这样一个页面首先我们看到一些int数据接着我们去点击filter
可以看到这边已经把大于20的数据过滤掉了接着我们点击map
这边看到我们对过滤完的数据进行了重新赋值让每个数据都乘2然后接着往下走
看到这边我们对数据进行了一个自然排序接着在往下走
这边看到我们把数据转成一个int数组最后返回,是不是很清晰明了感觉比平时debug还要清楚,这下我看谁还说stream一时写的爽,调试火葬场。
总结
文章到这就分享完了觉得有用的程序员就get起来吧!