第六章 常见方法引用

目录

一、引言

二、方法引用的格式

2.1. 使用说明

2.2. 常见引用方式

三、对象名::引用成员方法

四、类名::引用静态方法 

五、类名::引用实例方法  

六、类名::new引用构造器

七、数组::new 引用数组构造器  

八、总结


一、引言

Lambda的冗余场景

如下代码所示,我们在Lambda中所指定的功能,已经在类中存在现成的功能方法,因此没有必要再写重复逻辑:

我们可以直接使用引用”来解决这块冗余代码:

注意:其中的双冒号 :: 写法,这被称为“方法引用”,是一种新的语法。 

二、方法引用的格式

2.1. 使用说明

符号表示 ::

符号说明 : 双冒号为方法引用运算符,而它所在的表达式被称为方法引用

应用场景 : 如果Lambda所要实现的方案 , 已经有其他方法存在相同方案,那么则可以使用方法引用。

2.2. 常见引用方式

方法引用在JDK 8中使用方式相当灵活,有以下几种形式:

1. instanceName::methodName 对象::方法名

2. ClassName::staticMethodName 类名::静态方法

3. ClassName::methodName 类名::普通方法

4. ClassName::new 类名::new 调用的构造器

5. TypeName[]::new String[]::new 调用数组的构造器

首先了解Lambda表达式的冗余情况,体验了方法引用,了解常见的方法引用方式

三、对象名::引用成员方法

这是最常见的一种用法,与上例相同。如果一个类中已经存在了一个成员方法,则可以通过对象名引用成员方法,代码为:

方法引用的注意事项

1. 被引用的方法,参数要和接口中抽象方法的参数一样

2. 当接口抽象方法有返回值时,被引用的方法也必须有返回值

四、类名::引用静态方法 

由于在 java.lang.System 类中已经存在了静态方法 currentTimeMillis ,所以当我们需要通过Lambda来调用该方法时,可以使用方法引用 , 写法是:

五、类名::引用实例方法  

Java面向对象中,类名只能调用静态方法,类名引用实例方法是有前提的,实际上是拿第一个参数作为方法的调用者。

六、类名::new引用构造器

由于构造器的名称与类名完全一样。所以构造器引用使用 类名称::new 的格式表示。首先是一个简单的 Person 类:

七、数组::new 引用数组构造器  

数组也是 Object 的子类对象,所以同样具有构造器,只是语法稍有不同。

八、总结

方法引用是对Lambda表达式符合特定情况下的一种缩写,它使得我们的Lambda表达式更加的精简,也可以理解为Lambda表达式的缩写形式 , 不过要注意的是方法引用只能"引用"已经存在的方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值