基本概念
Lambda表达式的实质是一个匿名函数,其依赖于一个接口,这个接口只能有一个抽象方法,可以有静态方法和默认方法。
Lambda表达式语法:(参数列表) -> {方法体}
简化方法
其有四种简化方法:
1.参数列表的数据类型可以省略
Lambda lambda = (int a) -> {
return a;
};
Lambda lambda = (a) -> {
return a;
};
2.单个参数,可以省略参数的()
Lambda lambda = a->{
System.out.println(a);
};
3.单条语句,可以省略方法体的{}
Lambda lambda = a->System.out.println(a);
4.单条语句,语句为return,可以省略return
Lambda lambda = (a) -> {
return a;
};
Lambda lambda = a->a;
方法引用
当匿名函数与其他类的方法相同时,可以直接引用其他类的方法。
1.引用类的普通方法
Test test = new Test();
Lambda lambda = test::test;
2.引用类的静态方法
Lambda lambda = Test::test;
3.引用类的构造方法
Lambda lambda = Test::new;
@FunctionalInterface注解
该注解表示当前接口是一个函数式接口,只能有一个抽象方法,可以有有静态方法和默认方法。
@FunctionalInterface
public interface Lambda {
void test();
default void defaultFuntion() {
System.out.println("defaultFuntion");
}
static void staticFunction() {
System.out.println("staticFunction");
}
}