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 操作尽显眼前
同样可以点击左下角的 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 流程,查看对象属性等
以上是“IntelliJ IDEA中Stream Trace功能的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341