Java 8 之 Lambdas :: 双冒号引用

JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下。

什么是Lambda表达式

Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java的语言表达能力得到了提升。

方法引用 ::

方法引用是什么 ?

方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。

当Lambda表达式中只是执行一个方法调用时,不用Lambda表达式,直接通过方法引用的形式可读性更高一些。

  • 作用
    方法引用的唯一用途是支持Lambda的简写。
    方法引用提高了代码的可读性,也使逻辑更加清晰。
  • 组成
    使用::操作符将方法名和对象或类的名字分隔开。
    “::” 是域操作符(也可以称作定界符、分隔符)。

首先定义一个 列表:

静态方法引用

ClassName::staticMethod

等同于把lambda表达式的参数直接当成staticMethod的参数来调用。

执行结果:

实例方法引用

一、objectName::instanceMethod

等同于把lambda表达式的参数直接当成instanceMethod的参数来调用。

执行结果:

二、ClassName::instanceMethod

等同于把lambda表达式的第一个参数当成instanceMethod的目标对象,其他剩余参数当成该方法的参数。

执行结果:

构造方法引用(构造器引用)

构造器引用语法如下:ClassName::new,把lambda表达式的参数当成ClassName构造器的参数 

ClassName::new

执行结果:

总结

Lambda 表达式在Java 语言中引入了一个新的语法元 素和操作符。这个操作符为 “->” , 该操作符被称为 Lambda 操作符或剪头操作符。

它将 Lambda 分为 两个部分: 

左侧:指定了 Lambda 表达式需要的所有参数 

右侧:指定了 Lambda 体,即 Lambda 表达式要执行的功能。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值