加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Lambda表达式

发布时间:2020-12-14 06:36:26 所属栏目:Java 来源:网络整理
导读:这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【 Lambda表达式】 大家好,我是IT修真院上海分院第8期的学员朱

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【 Lambda表达式】

大家好,我是IT修真院上海分院第8期的学员朱明星,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网任务十,深度思考中的知识点——Lambda表达式

(1)背景介绍:

为什么要引入lambda表达式?Java是面向对象语言,要在Java中传递一段代码段需要构造对象,这个对象的类需要一个方法能包含所需的代码。Lambda是函数式编程,允许把函数作为一个方法的参数,可以将方法像参数一样传递。使用 Lambda 表达式可以使代码变的更加简洁紧凑。

(2)知识剖析:

语法格式

参数 -> 表达式

(parameters) -> expression

(parameters) -> { statements;

可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

1)如果代码要完成的计算无法放在一个表达式中,就可以像写方法一样,把这些代码放在{}中,并包含显式的return语句。例如:

(String first,String second) ->??

?? ?if (first.length() < second.length()) return -1;

?? ?else if (first.length() > second.length()) return 1;

?? ?else return 0;

}

2)即使lambda表达式没有参数,仍然要提供空括号,就像无参数方法一样。例如:

() -> { for (int i = 0; i <= 5; i++) System.out.println(); }

3)如果可以推导出一个lambda表达式的类型,则可以忽略其类型。例如: Comparator < String > comp = (first,second) -> first.length() - second.length();

编译器可以推导出first和second必然是字符串,因为这个lambda表达式将赋给一个字符串比较器。

(4)如果方法只有一个参数,而且这个参数的类型可以推导得出,可以忽略小括号。例如:

x -> 2 * x

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

(3)常见问题:

什么是函数式接口?

(4)解决方案:

只有一个抽象方法的接口,可以用@FunctionalInterface修饰

(5)编码实战:

见视频

(6)拓展思考:

lambda表达式的性能问题

(7)参考文献:

精通Spring4.X企业应用开发实战

(8)更多讨论:

Q1.lambda表达式和匿名类什么关系?

A1:与匿名类 概念相比较,Lambda其实就是匿名方法,这是一种把方法作为参数进行传递的编程思想。代码很简洁

Q2.如果lambda只能使用一次,那么它的优势又有什么呢

A2:lamada表达式简化了接口实现的过程,使得代码结构更加简洁。lamada的使用非常灵活。

Q3.我们为什么需要Lambda表达式呢?

A3:lambda表达式通过实现匿名类的方式对接口或者类进行了实例化,但是因为实例化的对象没有名字,也就无法进行二次使用,所以lambda表达式只能够使用一次,也就只能够使用或者执行一个方法。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

PPT链接?视频链接

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:,初学者转行到互联网的聚集地

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读