首页 > 图灵资讯 > java面试题>正文
什么是Functional Interface?
2024-08-31 13:21:13
什么是函数式接口?
函数式接口是指仅包含一个抽象方法的接口。这种接口的主要用途是作为Lambda表达式的目标类型。虽然函数式接口可以包含多个默认方法或静态方法,但只能有一个抽象方法。
在Java中,一个接口可以使用@Functionalinterface
注解来显式声明它是一个函数式接口。这种注解不是必须的,但它有助于编译器检查该接口是否符合函数式接口的定义。
函数式接口的作用
函数式接口的主要作用是允许我们使用Lambda表达式或方法引用来简洁地实现接口。因为函数式接口只有一个抽象方法,所以Lambda表达式可以被直接映射到这个方法。
Java标准库中的函数式接口
Java标准库中已经有很多预定义的函数式接口,主要在java.util.function
包中。以下是一些常见的函数式接口:
-
Consumer<T>:接受一个输入参数并且不返回结果。常用于对某个对象执行某些操作,比如打印、修改等。
-
Function<T, R>:接受一个输入参数并返回一个结果。常用于对输入进行处理并返回处理后的结果,比如类型转换、计算等。
-
Predicate<T>:接受一个输入参数并返回一个布尔值。常用于条件判断,比如检查一个字符串是否为空,检查一个数字是否大于某个值等。
-
Supplier<T>:不接受任何参数但返回一个结果。常用于提供某个值,比如生成随机数,获取系统时间等。
使用Lambda表达式实现函数式接口
当我们需要实现一个函数式接口时,可以使用Lambda表达式来简化代码。Lambda表达式提供了一种简洁的方式来实现接口的唯一抽象方法。