函数式接口

只拥有一个方法的接口被称为函数式接口。 编译器会自动推断一个接口是否为函数式接口。 可以在函数式接口上添加@FunctionalInterface注解来触发函数式接口校验。

可以通过Lambda表达式创建该接口的对象。

java包java.util.function中包含了常用的函数式接口:

  • Predicate<T>:接收T,返回boolean
  • Consumer<T>:接收T,不返回值
  • Function<T, R>:接收T,返回R
  • Supplier<T>:提供T对象(例如工厂),不接收值
  • UnaryOpeartor<T>:接收T,返回T
  • BinaryOperator<T>:接收两个T,返回T