Lambda表达式是JDK中一个重要的特性,它使用一个简洁的表达式来表达一个接口,同时Lambda表达式也简化对集合以及数组的遍历,提取和过滤等操作
匿名内部类存在的一个问题,如果匿名内部类的实现非常简单,比如只包含一个抽象方法的接口,但是匿名内部类的实现分析或者语法还是比较冗余,为此JDK1.8增加一个新特性Lambda表达式,这种表达式只针对有一个抽象方法的接口实现,以简洁的表达式形式实现接口的功能作为方法参数。
Lambda表达式结构由三部分组成
参数列表 -> 表达式主体
语法:
([数据类型 参数名,数据类型 参数名,….]) -> {表达式主体}
表达式主体:由单个表达式或者语句块组成的主体,本质就是接口中抽象方法的具体实现
函数式接口 函数式编程
什么是函数式接口?
是指有且只有一个抽象方法的接口.
在JDK1.8引入了一个新的注解@FunctionInterface
方法引用与构造器引用
Lambda表达式的主体只一条语句时,程序不仅可以省略包含主体的大括号,还可以通过英文双冒号 :: 的语法格式来引用方法和构造器,可以进一步的简化Lambda表达式的书写
| 种类 | Lambda表达式例子 | 对应的引用案例 | |||||||||||||||
| 类名引用普通方法 | (x,y…) -> 对象名x.类普通方法名(y,…..) | 类名 :: 类的普通方法名 | |||||||||||||||
| 类名引用静态方法 | (x,y…) -> 类名.类静态方法名(y,…..) | 类名 ::.类静态方法名 | |||||||||||||||
| 对象引用方法 | (x,y…) -> 对象名.实例方法名(y,…..) | 对象名 ::实例方法名 | |||||||||||||||
| 构造方法引用 | (x,y…) -> new 类名(y,…..) | 类名 :: new 扩展内容(JDK1.8的Lambda表达式)了解 Lambda表达式是JDK中一个重要的特性,它使用一个简洁的表达式来表达一个接口,同时Lambda表达式也简化对集合以及数组的遍历,提取和过滤等操作 匿名内部类存在的一个问题,如果匿名内部类的实现非常简单,比如只包含一个抽象方法的接口,但是匿名内部类的实现分析或者语法还是比较冗余,为此JDK1.8增加一个新特性Lambda表达式,这种表达式只针对有一个抽象方法的接口实现,以简洁的表达式形式实现接口的功能作为方法参数。 Lambda表达式结构由三部分组成 参数列表 -> 表达式主体 语法: ([数据类型 参数名,数据类型 参数名,….]) -> {表达式主体} 表达式主体:由单个表达式或者语句块组成的主体,本质就是接口中抽象方法的具体实现 函数式接口 函数式编程 什么是函数式接口? 是指有且只有一个抽象方法的接口. 在JDK1.8引入了一个新的注解@FunctionInterface 方法引用与构造器引用 Lambda表达式的主体只一条语句时,程序不仅可以省略包含主体的大括号,还可以通过英文双冒号 :: 的语法格式来引用方法和构造器,可以进一步的简化Lambda表达式的书写
|



