文章目录
一、什么是函数式接口
- 如果一个接口只有一个抽象方法,那么该接口就是一个函数式接口
- 函数式接口的实例可以通过 lambda 表达式 、方法引用 或者构造方法引用来创建
- 如果我们在某个接口上声明了
@FunctionalInterface
注解,那么编译器就会按照函数式接口的定义来要求该接口
二、四大核心函数式接口
函数式接口 | 称谓 | 参数类型 | 用途 |
---|---|---|---|
Consumer<T> |
消费型接口 | T | 对类型为T的对象应用操作,包含方法: void accept(T t) |
Supplier<T> |
供给型接口 | 无 | 返回类型为T的对象,包含方法:T get() |
Function<T, R> |
函数型接口 | T | 对类型为T的对象应用操作,并返回结果。结果是R类型的对象。包含方法:R apply(T t) |
Predicate<T> |
判断型接口 | T | 确定类型为T的对象是否满足某约束,并返回 boolean 值。包含方法:boolean test(T t) |
三、使用举例
java
public class One {
public static void main(String[] args) {
consumMoney(2000,x-> System.out.println("这个手机是:"+x+"元"));
}
public static void consumMoney(int money, Consumer consumer){
consumer.accept(money);
}
}
结果:
在上述例子中,main方法中调用了consumMoney方法,传入了两个参数;consumer的实现形式 就是
x-> System.out.println("这个手机是:"+x+"元")
,即:传入一个参数x,然后拼接输出。在consumMoney方法中调用accept方法,按照预定实现形式输出结果。