02-Lambda表达式的语法

本文demo

GitHub:https://github.com/Shiorys/java8.git

码云:https://gitee.com/Shiory-zzb/java8

1、使用前提

JDK版本:1.8

Lambda表达式需要“函数式接口”的支持

函数式接口:接口中只有一个抽象方法的接口,称为函数式接口。可以使用注解@FunctionalInterface 修饰,可以检查是不是函数式接口。

2、语法

Lambda的语法包括三个部分

  1. 参数列表:(参数列表)---在左侧,Lambda表达式的参数列表
  2. 箭头符号:"->"---也称Lambda操作符
  3. 代码块:{语句体}---在右侧,Lambda 体,要执行的功能

2.1、完整语法格式

(参数列表)->{语句体}

2.2、衍生语法格式

语法格式1:无参数,无返回值,代码块只有一条语句

() -> 语句;

语法格式2:有一个参数,无返回值,代码块只有一条语句

(x) -> 语句;    //语句中如果需要使用参数x,直接使用x即可

语法格式3:语法格式2中,如果只有一个参数,小括号可以省略不写

x -> 语句; 

语法格式4:有两个以上的参数,有返回值,并且代码块有多条语句

(x,y,...) -> {语句体;return 返回值};

语法格式5:有两个以上的参数,有返回值,并且代码块只有一条语句,return和{}都可以省略不写

(x,y,...) -> 语句;

语法格式6:参数列表的数据类型可以省略不写,因为JVM编译器通过上下文推断出数据类型,即"类型推断"

(数据类型1 x, 数据类型2 y,...) -> {语句体};

可以写成

(x,y,...) -> {语句体};

扩展:类型推断,如
            List list = new ArrayList<>();    //尖括号中就不用再写String


简单记:左右遇一括号省、左侧推断类型省、能省则省

你可能感兴趣的:(Java8)