IntelliJ IDEA 老司机居然还没用过 Stream Trace功能(问题小结)

网友投稿 989 2023-01-19

IntelliJ IDEA 老司机居然还没用过 Stream Trace功能(问题小结)

IntelliJ IDEA 老司机居然还没用过 Stream Trace功能(问题小结)

前言

自从 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 操作尽显眼前http://

同样可以点击左下角的 Flat Mode 按钮,将整http://个视图扁平化

在实际业务中,我们通常对集合进行各种 Stream 操作,我们再来个复杂一些的例子:

List> customers = Arrays.asList(

Optional.of(new Customer("日拱一兵",http:// 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 流程,查看对象属性

总结

这个简单的功能,看一遍就会,相信可以在日常的调试中对你有很大帮助,接下来会介绍更多的你不曾留意又很高级调试技巧

以上就是IntelliJ IDEA 老司机还没用过 Stream Trace功能(问题小结)的详细内容,更多关于idea Stream Trace的资料请关注我们其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:包含全球小程序生态大会排行榜的词条
下一篇:关于全球小程序生态大会刘佳的信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~