栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDK1.8的Lambda表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDK1.8的Lambda表达式

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表达式的书写

   

    种类

  Lambda表达式例子

   对应的引用案例

类名引用普通方法

(x,y…) -> 对象名x.类普通方法名(y,…..)

类名 :: 类的普通方法名

类名引用静态方法

(x,y…) -> 类名.类静态方法名(y,…..)

类名 ::.类静态方法名

对象引用方法

(x,y…) -> 对象名.实例方法名(y,…..)

对象名 ::实例方法名

构造方法引用

(x,y…) -> new 类名(y,…..)

类名 :: new

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号