lambda表达式允许将函数作为参数传入方法中 lambda表达式可以对一些接口进行实现 但是他规定只能实现函数式接口 所谓函数式接口就是指 接口内部只能存在一个抽象方法
使用lambda表达式就是为了实现接口 在实现接口的过程中 接口只能存在一个抽象方法 就直接实现该抽象方法就可以了
几个重要特征:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值
BBB bbb=new BBB(new AAA() {
@Override
public void show() {
System.out.println("匿名内部类实现的");
}
});
bbb.shoe();
System.out.println("*******************************");
BBB bbb1=new BBB(()->{
System.out.println("lambda表达式实现");
});
bbb1.shoe();
}
}
class BBB{
private AAA aaa;
public BBB(AAA aaa) {
this.aaa = aaa;
}
public void shoe(){
aaa.show();
}
}
interface AAA{
void show();
}
有参数有返回值的化就直接在方法体或者小括号内写参数和返回值就可以了