函数式接口即为只定义了一个接口方法(函数)的接口,例如:Runnable
JDK8提供多种函数式接口供我们使用,其中比较常见的有:Function、Predicate、Consumer、Supplier等
本文章主要介绍上述比较常见的函数式接口用法
在java.util.function包下还包含许多更加细致的函数式接口,例如BiFunction、BiPredicate、BiConsumer、BooleanSupplier等
lambda表达式即为函数式接口的简化版,函数式接口生成匿名对象时,实现唯一接口方法便可用lambda表达式进行简化
lambda表达式格式
() -> {}
当只有一个入参时,括号可省略,当返回只有一行时,大括号可省略
lambda常见用法
// 1、无输入 只输出
() -> "hello world!";
// 2、一个入参 一个返回
str -> str + "add str";
// 3、复杂逻辑
(n1, n2) -> {
if (n1.equals(n2)) {
return n1;
}
return n1 + "\t" + n2;
};
1、Function
Function源码如下
@FunctionalInterface
public interface Function<T, R&