Java函数式接口是仅含一个抽象方法的接口,用于支持Lambda表达式和方法引用;JDK 8起在java.util.function包中提供Function、Consumer、Supplier、Predicate等核心接口及其基本类型特化版、Bi-前缀双参数版、UnaryOperator、BinaryOperator等。

Java 的函数式接口(Functional Interface)是指**只包含一个抽象方法**的接口,主要用于支持 Lambda 表达式和方法引用。JDK 8 起在 java.util.function 包中提供了大量内置的函数式接口,覆盖常见场景。以下是核心且最常用的几类:
基础函数型接口
用于接收参数并返回结果,是最常用的一类:
-
Function
:接收一个 T 类型参数,返回 R 类型结果(如 t -> t.toString()) -
Consumer
:接收一个 T 类型参数,不返回结果(常用于“消费”操作,如 System.out::println) -
Supplier
:不接收参数,返回一个 T 类型结果(如 () -> new ArrayList()) -
Predicate
:接收一个 T 类型参数,返回 boolean(用于条件判断,如 s -> s.length() > 0)
带基本类型特化的接口(避免装箱)
为 int、long、double 等基本类型提供专用接口,提升性能,避免自动装箱开销:
-
IntFunction
、LongFunction 、DoubleFunction - IntConsumer、LongConsumer、DoubleConsumer
- IntSupplier、LongSupplier、DoubleSupplier
- IntPredicate、LongPredicate、DoublePredicate
双参数函数接口
用于需要两个输入参数的场景:
聚彩手机商城系统,是一款专业于手机销售的独立手机网店系统,他拥有众多的手机参数选项,以及傻瓜式的设置选项,让您可以在5分钟内建立起专业而强大的手机销售网站。他拥有多套模版可以实时切换,前台拥有新闻中心、手机中心、配件中心、软件下载、手机报价、发货查询、保修查询、分店查询、产品的对比功能,代理与加盟的申请等功能,他拥有完善的会员中心,会员等级设置等,集成在线支付接口,超强SEO,可以设置所有页面的t
立即学习“Java免费学习笔记(深入)”;
-
BiFunction
:接收 T 和 U,返回 R(如 (s, len) -> s.substring(0, len)) -
BiConsumer
:接收两个参数,无返回(如 (k, v) -> map.put(k, v)) -
BiPredicate
:接收两个参数,返回 boolean(如 (x, y) -> x.equals(y))
其他实用接口
补充一些特定用途的接口:
-
UnaryOperator
:等价于 Function,输入输出同类型(如s -> s.trim()) -
BinaryOperator
:等价于 BiFunction,两个同类型输入,返回同类型(如Integer::sum) -
Runnable 和 Comparable 也是函数式接口(虽不在
function包中),但因历史原因被广泛用于 Lambda(如() -> System.out.println("ok"))
基本上就这些。实际开发中,Function、Consumer、Predicate、Supplier 及其基本类型变体用得最多,其余按需选用即可。










