“->”是Lambda表达式的操作符,操作符的左侧是表达式的参数列表,右侧是需要执行的功能,即Lambda体。

格式一:无参数,无返回值

以Runnable接口为例:

Lambda表达式在Java8中的应用_数据类型

执行:

Lambda表达式在Java8中的应用_数据类型_02

执行结果:

Lambda表达式在Java8中的应用_数据类型_03

格式二:有参数,无返回值

这里定义一个函数式接口:

Lambda表达式在Java8中的应用_数据类型_04

执行:

Lambda表达式在Java8中的应用_函数式接口_05

执行结果:

Lambda表达式在Java8中的应用_大括号_06

如果只有一个参数的话,参数的小括号可以不写:

上面的代码可以写成:

Lambda表达式在Java8中的应用_大括号_07

格式三:有多个参数,有返回值,并且Lambda体中有多条语句

这种情况下需要使用大括号和return。

定义一个函数式接口:

Lambda表达式在Java8中的应用_函数式接口_08

执行:

Lambda表达式在Java8中的应用_数据类型_09

执行结果:

Lambda表达式在Java8中的应用_大括号_10

格式四:有多个参数,有返回值,Lambda体中只有一条语句

这种情况大括号和return都可以不写了。

Lambda表达式在Java8中的应用_函数式接口_11

执行结果:

Lambda表达式在Java8中的应用_函数式接口_12

还有一个就是要注意数据类型的问题,要么所有的参数都写数据类型,要么都不写,JVM编译器会根据上下文推断数据类型。

在循环中的使用

Lambda表达式在Java8中的应用_数据类型_13

循环遍历Map

Lambda表达式在Java8中的应用_函数式接口_14