1. 什么是λ表达式
λ表达式本质上是一个匿名方法,Lanbda表达式的主要作用就是代替匿名内部类的繁琐语法, 它由三部分组成:
- (1) 形参列表。形参列表
允许省略
形参类型
。如果形参列表中只有一个参数
,甚至连形参列表的圆括号
也可以省略。 - (2) 箭头(→)。必须通过英文中画线和大于符号组成。
- (3)代码块。
如果代码块
只包含一条语句
,Lambda表达式允许省略
代码块的花括号
,那么那条语句就不要用花括号表示语句结束。Lambda代码块只有一条return语句
,甚至可以省略``return
关键字。Lambda表达式需要返回值,而它的代码块中仅有一句省略了return的语句。Lambda表达式会自动返回这条语句的值。
2. lambda语法
lambda表达式的基本格式为:( type x1,type x2 )->{ 表达式…};
而在整个java之中,对于lambda表达式一共定义了有三类语法:
- (params) -> 单行语句;
- (params) ->表达式;
- (params) ->{多行语句};
3.Lambda表达式使用条件
强调,如果要实现lambda表达式,那么必须有一个前提,提供一个接口
,且接口里面的抽象方法
只能够存在一个
。所以为了严格这样的语法要求。可以使用函数式的接口定义@FunctionalInterface
.
@FunctionalInterface
interface MyMath {
public int add(int x,int y);
}
public class TestDemo {
public static void main(String[] args) {
MyMath myMath = (x,y) ->
{
int sum = x + y;
return sum;
};
System.out.println("计算结果:" + myMath.add(10,20));
}
}
参考
https://jingyan.baidu.com/article/eb9f7b6d569699869364e8b4.html
https://blog.csdn.net/bitcarmanlee/article/details/70195403
https://blog.csdn.net/ioriogami/article/details/12782141/
http://www.importnew.com/16436.html