一、前言Java17 将于下周二(9月14日)正式发布,Java17 是一个长期支持 (LTS) 版本,想必很多同学都跃跃欲试。下面请跟笔者一起看看可能需要调整代码的变更。
二、Java17 Stream SIZED 特性从 Java17 开始,Stream 的 SIZED 特性在 skip() 和 limit() 操作期间会依然有效。这可能会导致 Stream 流的行为发生改变:
long count = Stream.of(1, 2, 3, 4) .skip(1) .limit(2) .peek(System.out::println) .count(); System.out.println("count:\t" + count);上面的 peek 方法在 Java 8-16 中打印 2 和 3,但在 Java 17 中不打印任何内容。因为大小是预先知道的,因此没有必要遍历流。
效果演示
三、最后大家好,我是如梦技术春哥(mica 微服务系列开源作者),请帮忙分享给更多有需要的同学,谢谢大家!!!