1 JDK中常见的Lamada表达式
Java中可以使用Lamada表达式的接口都有@FunctionalInterface注解。
先来看看util.function包下面含有FunctionalInterface注解的接口。一屏显示不全,可见功能非常齐全。
鉴于常用的一些函数式接口有Function/Consumer/Supplier/Predicate以及Runnable等。本篇介绍这几类接口。
1.1 Runnable
Runnable 使用Lamada方式书写时,无参数,无返回值。最终执行的是run方法
使用Demo
1.2 Function
Function 表示接受一个参数并产生结果的函数。
Function<T,R>接受一个参数T,并且有返回值 R, 其实现也主要是实现此方法 R apply(T t);
Function 的一个示例:
上述示例中是一个stream的map方法。其中x为输入参数,『"Java North and" + x』为输出。
1.3 Consumer
Consumer表示接受一个参数,没有返回值的操作,主要方法为 void accept(T t);
1.3.1 Consumer 在Java中的应用
常见的有List的forEach等。
x为参数,输出语句直接执行。
下面的map的forEach参数为BiConsumer,其入参有两个。
1.3.2 自定义带有Consumer的方法
1.4 Supplier
Supplier没有参数,有一个返回值。