前言

自从 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 流程,查看对象属性等

总结

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

最新文章

  1. 对已经add的文件不在跟踪
  2. 伪类选择器:root的妙用
  3. 谈谈SpringMVC Validation
  4. 【C语言】重定向和文件
  5. Tomcat服务器
  6. Cookie的一些用法
  7. csdn博客被删除联系客服恢复
  8. PHP die与exit的区别
  9. 为什么wait()方法要放在同步块
  10. RSA 非对称加密【转】
  11. React 开发注意事项
  12. GO语言的进阶之路-协程和Channel
  13. 改变R和Matlab的默认工作目录
  14. WebSafeBase64Decode
  15. 5O - 产生冠军
  16. Python列表知识点讲解
  17. 解题:POI 2015 Pieczęć
  18. Using the FutureRequestExecutionService Based on classic (blocking) I/O handle a great number of concurrent connections is more important than performance in terms of a raw data throughput
  19. fzu1901Period II
  20. eclipse官方下载地址

热门文章

  1. 简单ping确定网络故障
  2. 痞子衡嵌入式:盘点国内MCU级RISC-V内核IP厂商
  3. c++ 反汇编 局部静态变量
  4. 【python小示例】简易彩票中奖模拟
  5. 计算机体系结构——CH3存储系统
  6. Docker遇到的异常和注意点
  7. 201871030108-冯永萍 实验二 个人项目— D{0-1}背包问题项目报告
  8. .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
  9. 给出N个字符串恰好由三位字母(大小写)组成,再给出M个查询字符串,问每个查询字符串在N个字符中出现的次数。
  10. kube-batch 创建的pod 一直是Pending