当前位置: 首页 > 图灵资讯 > java面试题> 什么是Functional Interface?

什么是Functional Interface?

来源:图灵教育
时间:2024-08-31 13:21:13

什么是函数式接口?

函数式接口是指仅包含一个抽象方法的接口。这种接口的主要用途是作为Lambda表达式的目标类型。虽然函数式接口可以包含多个默认方法或静态方法,但只能有一个抽象方法。

在Java中,一个接口可以使用@Functionalinterface注解来显式声明它是一个函数式接口。这种注解不是必须的,但它有助于编译器检查该接口是否符合函数式接口的定义。

函数式接口的作用

函数式接口的主要作用是允许我们使用Lambda表达式或方法引用来简洁地实现接口。因为函数式接口只有一个抽象方法,所以Lambda表达式可以被直接映射到这个方法。

Java标准库中的函数式接口

Java标准库中已经有很多预定义的函数式接口,主要在java.util.function包中。以下是一些常见的函数式接口:

  1. Consumer<T>:接受一个输入参数并且不返回结果。常用于对某个对象执行某些操作,比如打印、修改等。

  2. Function<T, R>:接受一个输入参数并返回一个结果。常用于对输入进行处理并返回处理后的结果,比如类型转换、计算等。

  3. Predicate<T>:接受一个输入参数并返回一个布尔值。常用于条件判断,比如检查一个字符串是否为空,检查一个数字是否大于某个值等。

  4. Supplier<T>:不接受任何参数但返回一个结果。常用于提供某个值,比如生成随机数,获取系统时间等。

使用Lambda表达式实现函数式接口

当我们需要实现一个函数式接口时,可以使用Lambda表达式来简化代码。Lambda表达式提供了一种简洁的方式来实现接口的唯一抽象方法。