Java8学习—Lambda表达式

1、什么是Lambda表达式?

​ 我们可以把Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主题、返回类型,可能还有一个可抛出的异常列表。

Lambda表达式包括三部分:

​ (1)参数列表—这里它采用了Comparator中compare方法的参数,两个Apple。

​ (2)箭头—把参数列表和Lambda主体分隔开

​ (3)Lambda主体—比较两个Apple的重量,表达式就是Lambda的返回值。

为了进一步说明Lambda表达式,下面举了五个例子。

2、如何使用Lambda表达式?

2.1、什么是函数式接口?

函数式接口就是只定义一个抽象方法的接口。如下所示:

2.2、什么是函数描述符?

​ 函数式接口的抽象方法的签名基本上就是Lambda表达式的签名。我们将这种抽象方法叫做函数描述符

2.3、使用局部变量

​ Lambda可以没有限制地捕获实例变量和静态变量,但局部变量必须显示的声明为final或事实上是final

2.4、方法引用

​ 方法引用可以被看作是仅仅调用特定方法的Lambda的一种快捷写法。它的基本思想,如果一个Lambda代表的只是“直接调用这个方法”,那最好还是用名称来调用它。而不是去描述如何调用它。

​ 方法引用主要有三类:

​ (1)指向静态方法的方法引用(例如Integer的的parseInt方法,写作Integer::parseInt)。

​ (2)指向任意类型实例方法的方法引用(例如(String s)—>s.toUpperCase(),写作String::length)。

​ (3)指向现有对象的实例方法的方法引用(假设局部变量T有getValue方法,则可以写成T::getValue)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值