如何写Lambda表达式?
1.必须有函数式接口:只有一个抽象方法的接口,如:
interface ILike{
void lambda(int a,int b);
}
2.Lambda表达式在只有一行代码的情况下才可以简化成为一行,如果有多行,就必须用代码块(花括号)包裹
3.一个或多个参数都可以去掉参数类型,要去掉就都去掉参数类型,并且必须加上括号
简化流程:
1.匿名内部类
like = new ILike() {
@Override
public void lambda(int a, int b) {
System.out.println("I like Lambda"+a*b);
}
};
like.lambda(10,20);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LMpI0KLg-1626272860867)(H:\Soft\Typora\img\lambda.png)]
如图所示,因为ILike为函数式接口,并且被选中的部分是固定不变的,所以可以将其省略,从匿名内部类调整为下面的Lambda函数
2.Lambda表达式
ILike like;
like = (a,b)-> {
System.out.println("I like Lambda"+a*b);
};
like.lambda(10,20);
3.因为以上Lamba表达式的方法体中只有一行代码,所以可以省略代码块(花括号)
ILike like;
like = (int a, int b)->System.out.println("I like Lambda"+a*b);
like.lambda(10,20);