1.  什么是Lambda表达式?

Lambda表达式就是可以把函数作为参数传递,或者说把代码作为数据传递给函数。

2. Lambda表达式的语法格式

基本语法格式如下:

Java8新特性-Lambda表达式_java8 新特性 Lambda表达式

基本语法下多个变体的说明:

1). 多个参数中间用逗号分隔:

(int m,int n)=>{int result=m*n; Console.WriteLine(result);}

2). 参数类型可以省略:

(m,n)=>{int result=m*n; Console.WriteLine(result);}

3). 只要一个参数的时候可以省略类型并且不使用圆括号():

p->{System.out.println(p);}

4). 没有参数的时候只保留圆括号()

()->{System.out.println();}

5).代码块只有一行的时候可以省略大括号{}

p->System.out.println(p);

6). 代码块只有一行的时候,Java运行时会检测语句,并返回相关的类型

p->{
    p.getGender == Person.Sex.MALE && p.getAge >= 18;
}

等同于:

p->{
    return p.getGender == Person.Sex.MALE && p.getAge() >= 18;
}