lambda表达式python_Java8 中的 Lambda 表达式,没想象的那么难理解

80e8acefbfbba24c9d82b2a4525472ca.png

Java 8 在 2014 年发布,时间已经过去 6 + 年,Java 8 的新特性--lambda,你熟悉吗?

Lambda 表达式是一个【匿名函数】。在了解它的语法前,你首先得明白,什么情况下能使用 Lambda,【简单来说就是接口中只能有一个被实现的方法】。如果一个接口中含有n(n >= 2)方法,不可以使用 Lambda 表达式,因为 Lambda 表达式隐去了方法名和参数类型,无法确定使用的是哪一个方法。

先感受哈 Lambda 的魅力

524e1ec49b633bdc2f429200a2f9bdb5.png

输出结果:

e9ae75a6c04e5e2d094e417c5e9ab6e6.png

下面我们来盘一盘 Lambda 表达式的各种情况。

Lambda 的基本语法

// 写法 ①(parameters) -> expression// 写法 ②(parameters) ->{ statements; }

1-4 是无返回值的情况

1、接口函数无参数,无返回值

e0206838e4f7b4f34783e6483b703e17.png

2、接口函数有 1 个参数,无返回值

类型可选,可以不指定参数类型,编译器可以自动判断。

圆括号可选,如果只有一个参数,可以不需要圆括号,多个参数必须要圆括号。

花括号可选,一个语句可以不用花括号,多个语句则必须有花括号。

cbe3681bf4a314f6afd3ec99c37d9917.png

3、接口有多个参数,无返回值

8515dd5764d9c18d9f82ab97578fb467.png

4-6 是有返回值情况

4、接口函数无参数,有返回值

返回值可选,如果只有一个表达式,可以自动返回,不需要 return 语句;花括号中需要 return 语法。

d134c93714e7f81ffba623939d1c16f1.png

5、接口函数有 1 个参数,有返回值

43b806373e224c3358a75a8260511578.png

6、接口函数有多个参数,有返回值

1cd138f2313dc84124cbe03455e2b8fd.png

Lambda 表达式引用方法

上面的 6 个例子,只是入门级,如果还没理解,建议收藏多看几次。下面盘一盘在 Lambda 表达式 -> 引入方法。

1、Lambda 表达式引用方法 -- 静态方法

7ed1f20efc7e709fb70cdbc682509bc6.png

2、Lambda 表达式引用方法 -- 对象方法

3f6fb418e348ead2eeb4cbcdbdc44e1f.png

3、Lambda 表达式引用构造函数 -- 无参构造函数

打印“无参构造函数”

738f99a17610b220df9c3b4c474ef89b.png

4、Lambda 表达式引用构造函数 -- 有 1 个参数的构造函数方法

打印“有 1 个参数的构造函数”

d064f831e2e3bf4b02f58f9c9a33c2c0.png

5、Lambda 表达式引用构造函数 -- 有 2 个参数的构造函数方法

打印“有 2 个参数的构造函数”

5acdcef154e361055c8a7737954708cf.png

欢迎关注 @Python大星 ,一个会点 Python 的 Java 程序员。如果你有更好的想法,欢迎留言,一起探讨,想说你就说啊!后续更新 Java8 更多新的特性。

@Python大星 | 文

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值