Lambda表达式
1.概述
Lambda表达式是jdk1.8的新特性之一,他可以极大程度简化代码,减少代码量,常用于java中接口式匿名内部类。Lambda允许把函数作为一个方法的参数(函数作为参数传递到方法中),或者把代码看成数据。
2.定义
只有一个方法的匿名内部函数是函数式接口,它可以被隐式转换成Lambda表达式。
只有一个抽象方法(Object类中方法除外)的接口式函数式接口。
3.实质
其实质就是匿名内部类(只有一个方法接口的匿名函数)。即满足函数式接口的接口。
函数式接口的注解为:@FunctionalInterface(标注在类名上一行),当此接口不是函数式接口式,会报错。
4.常用的函数式接口
Supplier接口:代表一个输出。
Consumer接口:代表一个输入
BiConsumer接口:代表二个输入
Function接口:代表一个输入,一个输出。(一般输入输出类型不同)
Function<Integer, Integer> function = x -> {
int count = 0;
for (int i = 0; i < x; i++) {
count += i;
}
return count;
};
System.out.println(function.apply(10));
BiFunction接口:代表二个输入,一个输出。(一般输入输出类型不同)
5.使用:() -> {}