【Java Lambda系列】Lambda方法引用,你一定能搞懂!

前言

通过前面两章「Lambda必知必会的基础知识」「Lambda内置函数式接口」的讲解相信大家对Lambada已经有了比较深刻的认识,通过Lambda确实可以简化我们的代码,但在使用的过程中我们可能会遇到这样一个问题,对于存在的方法Lambda应该怎么使用呢?对于这个问题本章我们继续探讨Java8的另一个功能方法引用

方法引用

方法引用,指重复使用已有的方法定义,在这里表现为通过已有的方法创建Lambda表达式,让代码拥有更好的可读性。如果对这里有疑问,莫要慌,请继续向下看。

如何构建?

  • 语法:[类名|对象名]::方法
  • 构建形式:构造方法引用静态方法引用实例方法引用对象方法引用。如下表所示:
引用形式 语法 等效Lambda 备注
构造方法引用 类名::new (args) -> new 类名(args)
静态方法引用 类名::方法名 (args) -> 类名.方法名(args)
实例方法引用 类名::方法名 (instance,args) -> instance.方法名(args) instance为lambda传入参数的实例(第一个参数为实例,之后参数为调用方法的方法参数)
对象方法引用 对象::方法名 (args) -> obj.方法名(args) obj为lambda外部对象(非传入)

实例方法引用、对象方法引用看起来可能会有点晕,可以先记下接下来,我们通过示例来加深对这四种形式的理解!

示例

构造方法引用

构造器参数列表与函数式接口参数保持一致即可替换

  • 无参构造
// Lambda形式
Supplier<Apple> apple = () -> new Apple();
System.out.println(apple.get()); //com.uucoding.java.entity.Apple@305fd85d
// 构造方法引用形式
Supplier<Apple> appleNew = Apple::new;
System.out.println
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值