软软猿妹问我JDK中眼花缭乱的Function/Consumer/Supplier/Predicate?(上)

简介: 哈喽,大家好,我是指北君。JDK中有许多函数式接口,也会有许多方法会使用函数式接口作为参数,同时在各种源码中也大量使用了这些方法,那么我们在实际工作中应该如何使用!我们就来盘一盘,这样也有助于写出优雅的代码,使我们在阅读源码时事半功倍。

1 JDK中常见的Lamada表达式

Java中可以使用Lamada表达式的接口都有@FunctionalInterface注解。

先来看看util.function包下面含有FunctionalInterface注解的接口。一屏显示不全,可见功能非常齐全。

鉴于常用的一些函数式接口有Function/Consumer/Supplier/Predicate以及Runnable等。本篇介绍这几类接口。

80.jpg81.jpg

1.1 Runnable

82.png

Runnable 使用Lamada方式书写时,无参数,无返回值。最终执行的是run方法

使用Demo

83.png


1.2 Function

Function 表示接受一个参数并产生结果的函数。


84.png

Function<T,R>接受一个参数T,并且有返回值 R, 其实现也主要是实现此方法 R apply(T t);

Function 的一个示例:

85.png


上述示例中是一个stream的map方法。其中x为输入参数,『"Java North and" + x』为输出。


1.3 Consumer

Consumer表示接受一个参数,没有返回值的操作,主要方法为 void accept(T t);

86.png


1.3.1 Consumer 在Java中的应用

常见的有List的forEach等。


87.png

x为参数,输出语句直接执行。

下面的map的forEach参数为BiConsumer,其入参有两个。

88.png

1.3.2 自定义带有Consumer的方法

89.png

1.4 Supplier

Supplier没有参数,有一个返回值。


90.png

相关文章
|
API
JDK8函数式接口之Supplier
JDK8函数式接口之Supplier
167 0
|
Java API 容器
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
673 1
Java8中的函数式接口详解(Supplier、Consumer、Predicate、Function)
Java8中的函数式接口详解(Supplier、Consumer、Predicate、Function)
1340 1
|
API
JDK8函数式接口之Consumer
JDK8函数式接口之Consumer
226 0
常用函数式接口:Consumer、Predicate、Function的方法说明解练习
常用函数式接口:Consumer、Predicate、Function的方法说明解练习
170 0
|
Java
1.3 Lambda表达式的基础:常用的函数式接口:Predicate、Consumer、Function等
1.3 Lambda表达式的基础:常用的函数式接口:Predicate、Consumer、Function等
176 0
|
Java 程序员 Go
Java 8 - 03 Lambda 函数式接口Predicate & Consumer & Function & Supplier
Java 8 - 03 Lambda 函数式接口Predicate & Consumer & Function & Supplier
223 0
|
Java
【JDK8之旅】——Supplier
【JDK8之旅】——Supplier
134 0
|
Oracle Java 关系型数据库
【Java8新特性】04 详解Lambda表达式中Predicate Function Consumer Supplier函数式接口
【Java8新特性】04 详解Lambda表达式中Predicate Function Consumer Supplier函数式接口
|
2月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
在整个安装过程中,你可能需要管理员权限,因此你可能要使用 `sudo` 来获取必要的权限。记得做完每一个步骤后,都要检查输出,以确保没有发生错误,并且每项操作都成功完成。如果在安装过程中遇到问题,查看 `/var/log/` 下的日志文件对于问题的解决可能是有帮助的。
127 21

热门文章

最新文章