升级 java17 你或许应该知道小细节
前言
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 微服务系列开源作者),请帮忙分享给更多有需要的同学,谢谢!!!
评论