自从 Java 8 开始,作为程序员的我们都离不开 Stream 相关功能的使用,书写起来那叫一个流畅(这个 feel~~)。但总是有一些时候,我们对 stream 的操作所要的结果和预期不符,这就需要我们逐步调试,定位问题
先来看下面这段代码:
public static void main(String[] args) {
Object[] res = Stream.of(1,2,3,4,5,6,7,8).filter( i -> i%2 == 0).filter( i -> i>3).toArray();
System.out.println(Arrays.toString(res));
}
我们可以在 Stream 操作处打上断点,逐步查看结果,就像这样:
我们需要各种单步调试,不是很直观,我们迫切的需要个一览视图,让我们快速查看我们的 Stream 结果
同样先选择行断点,以 Debug
模式进入程序:
接下来会弹出 Stream Trace
,整个 Stream 操作尽显眼前
同样可以点击左下角的 Flat Mode
按钮,将整个视图扁平化
在实际业务中,我们通常对集合进行各种 Stream 操作,我们再来个复杂一些的例子:
List<Optional<Customer>> customers = Arrays.asList(
Optional.of(new Customer("日拱一兵", 18)),
Optional.of(new Customer("卑微的小开发", 22)),
Optional.empty(),
Optional.of(new Customer("OOT", 21)),
Optional.empty(),
Optional.of(new Customer("温柔一刀", 23)),
Optional.empty()
);
long numberOf65PlusCustomers = customers
.stream()
.flatMap(c -> c
.map(Stream::of)
.orElseGet(Stream::empty))
.filter(c -> c.getAge() > 18)
.count();
System.out.println(numberOf65PlusCustomers);
同样按照上面的操作得到可视化 Stream Trace 视图,直观了解整个 Stream 流程,查看对象属性等
这个简单的功能,看一遍就会,相信可以在日常的调试中对你有很大帮助,接下来会介绍更多的你不曾留意又很高级调试技巧
日拱一兵 | 原创
有些时候做的东西刚好要用到链接,但又不需要去链接,只需要对onclick事件进行处理...
CSS display 属性 注释:如果规定了 !DOCTYPE,则 Internet Explorer 8 (以及更...
http://www.piscdong.com/entry.php/153/ 代号为Stiletto的Dreamweaver CS4终于...
在用Dreamweaver编辑网页时,经常会在某一页面中要设置许多的连接,正因为要设置...
通过利用背景颜色与间距制作细边的表格教程的介绍,大家在Dreamweaver中插入一个...
简介:极速部署一个微服务电商商城,体验 Serverless 带给您的应用全托管体验。 ...
给组件添加背景图控制只需要两步: View className=gifts style={{ background: ...
一、总结 一句话总结: 1、图标是字体样式:input右侧的字体图标是字体样式,所...
绿色与人类息息相关,是永恒的欣欣向荣是的自然之色,代表了生命与希望,也充满...
也因此造成了上传不了png文件的原因(后来看了资料才知道我找错了注册表的位置)。...