在stream中是否还使用peek操作,小心避开这些潜在陷阱?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1207个文字,预计阅读时间需要5分钟。
简介:自引入stream后,编程变得更加简洁。stream提供多种方法,如map、peek、flatmap等,让代码更优美。实际上,我也常在项目中看到一些小伙伴会用到这些方法。
简介
自从JDK中引入了stream之后,仿佛一切都变得很简单,根据stream提供的各种方法,如map,peek,flatmap等等,让我们的编程变得更美好。
事实上,我也经常在项目中看到有些小伙伴会经常使用peek来进行一些业务逻辑处理。
那么既然JDK文档中说peek方法主要是在调试的情况下使用,那么peek一定存在着某些不为人知的缺点。一起来看看吧。
peek的定义和基本使用
先来看看peek的定义:
Stream<T> peek(Consumer<? super T> action);peek方法接受一个Consumer参数,返回一个Stream结果。
而Consumer是一个FunctionalInterface,它需要实现的方法是下面这个:
void accept(T t);accept对传入的参数T进行处理,但是并不返回任何结果。
本文共计1207个文字,预计阅读时间需要5分钟。
简介:自引入stream后,编程变得更加简洁。stream提供多种方法,如map、peek、flatmap等,让代码更优美。实际上,我也常在项目中看到一些小伙伴会用到这些方法。
简介
自从JDK中引入了stream之后,仿佛一切都变得很简单,根据stream提供的各种方法,如map,peek,flatmap等等,让我们的编程变得更美好。
事实上,我也经常在项目中看到有些小伙伴会经常使用peek来进行一些业务逻辑处理。
那么既然JDK文档中说peek方法主要是在调试的情况下使用,那么peek一定存在着某些不为人知的缺点。一起来看看吧。
peek的定义和基本使用
先来看看peek的定义:
Stream<T> peek(Consumer<? super T> action);peek方法接受一个Consumer参数,返回一个Stream结果。
而Consumer是一个FunctionalInterface,它需要实现的方法是下面这个:
void accept(T t);accept对传入的参数T进行处理,但是并不返回任何结果。

