1、Consumer: 消费型接口 有一个可以消费任意数据类型的数据的方法
2、Supplier:供给型接口 有一个可以提供任意数据类型数据的方法
3、Function<T, R>:函数型接口 有一个可以把任意数据转换为其他任意数据类 型的方法
4、Predicate:断言型接口 有一个可以对任意数据进行判断的方法
1 、Consumer 【消费性接口】
void accept(T t):消费使用掉任意的一个数据
作用:当某个方法可以接收一个数据,并且处理这个数据,处理完成之后,不需要返 回任何数据; 这个方法需要当做数据来进行传递,就使用消费型接口。
案例:定义出一个方法功能, 客户预计消费500元现金, 每一个客户对于500元的消费都不同, 将客户的消费方式实现出来
客户1 : 花了500元, 买了一辆车
客户2 : 花了500元, 买了一堆化妆品
客户3 : 花了500元, 买了一双球鞋
还有无限的客户有不同种消费方式
import java.util.function.Consumer;
public class ConsumerExample{
//客户需要购物
public static void shopping(double x, Consumer consumer){
consumer.accept(x);
}
public static void main(String[] args) {
Consumer<Double> c1 = (x) ->{
System.out.println("客户1花了"+x+"元,买了一辆车");
};
shopping(500,c1);
Consumer<Double> c2 = (x) ->{
System.out.println("客户2花了"+x+"元,买了一堆化妆品" );
};
shopping(50000,c2);
}
}
2、 Supplier【供给型接口】
T get():提供返回任意类型数据的规则
作用:如果需要定义方法,可以生产一个需要的数据,又不需要提供参数; 这个方法 需要当做数据来进行传递,那么就可以使用供给型接口。
案例:
定义出一个方法功能, 能给客户返回出一个ArrayList类型容器, 容器中装几个数据由客户决定, 容器中承装的数据有什么规律, 由客户决定, 方法主要给客户返回一个符合客户要求的容器
客户1: 5个数据,都是30-80之间的随机数
客户2: 8个数据,1-100之间的随机偶数
```java
public static ArrayList<Integer> getList(int count, Supplier<Int eger> sup)