java8新特性--Lambda 表达式
一:为什么使用 Lambda 表达式
Lambda 是一个 匿名函数 ,我们可以把 Lambda 表达式理解为是 一段可以 传递的代码 (将代码像数据一样进行传递)。使用它可以写出更 简洁、灵活的代码。作为一种更紧凑风格,使 Java 的语言表达能力得到了 提升。
二:Lambda 表达式语法
Lambda 表达式 :在Java 8 Java 8 语言中引入 的一种新的语法元素和操 作符。这个操为 “->” , 该操作符被称为 Lambda 操作符 或箭头操作符 。它将 Lambda 分为两个部:
左侧: 指定了 Lambda 表达式需要的 参数列表
右侧: 指定了 Lambda 体,是抽象方法的实现逻辑,也 即 Lambda 表达式要执行 的功能 。
常用的6种语法格式
- 语法格式一:无参,无返回值
- 语法格式二 :Lambda 需要一个参数,但是没有返回值。
- 语法格式三 :数据类型可以省略 ,因为可由编译器推断得出称“类型”
- 语法格式四 :Lambda 若只需要一个参数时, 参数的小括号可以省略
- 语法格式五 :Lambda 需要两个或以上的参数,多条执行语句并且可有返回值
- 语法格式六 :当Lambda 体只有 一条 语句时,return 与大括号 若有,都可以省略
三:总结
1.省略
- ->左边:lambda形参列表的参数类型可以省略(类型推断);如果lambda形参列表只有一个参数,其一对()也可以省略
- ->右边:lambda体应该使用一对{}包裹;如果lambda体只有一条执行语句(可能是return语句),省略这一对{}和return关键字
2.lambda本质
:作为函数式接口的实例
函数式接口:如果一个接口中,只声明了一个抽象方法,则此接口就成为函数式接口.我们可以在一个借口上使用@FunctionalInterface 注解*这样做可以检查它是否是一个函数式接口*
例如:Runnable 的 run方法
下一章接:java8新特性--函数式(Functional)接口