函数式接口是Java中的一个概念。简单来说,它就是一个只有一个抽象方法的接口。这个概念在Java 8中引入,是为了支持“函数式编程”,让代码更简洁。
想象一下,函数式接口就像是一张只有一个按钮的遥控器。这个按钮代表一个功能,你可以告诉这个遥控器具体要做什么,而不需要关心其他的细节。
举个例子,假设有一个函数式接口叫做“计算器”,它只有一个方法,比如“计算”。这个方法可以用来做任何计算,比如加法、减法、乘法或者除法。你可以通过给这个接口传递不同的指令,告诉它在按下按钮的时候该做什么。
在Java中,常见的函数式接口有:
-
Runnable:这是一个最简单的例子。它有一个“run”方法,没有参数也没有返回值。你可以用它来表示一个任务,比如在后台执行一些操作。
-
Callable:和Runnable有点像,但它有一个返回值。比如,你可以用它来表示一个计算任务,完成后返回结果。
-
Comparator:用来比较两个对象,比如根据年龄比较两个人谁更大。它有一个方法叫“compare”,用来定义比较的规则。
在实际使用中,Java 8引入了Lambda表达式,这让使用函数式接口变得更加方便和直观。Lambda表达式就像是给这个“遥控器”设定具体的功能,让代码看起来更简洁。
总之,函数式接口就是一个只有一个功能的接口,它让我们可以用更简洁的方式来告诉程序要做什么。