java 8的方法引用_java 8 方法引用(method references)

1 什么是方法引用(method references)java

java 8 添加了一个很熟悉可是又很陌生的符号::。 你也许会看到这样的代码ide

System.out::println

其实就是方法引用(method references)。因为java 8 把方法/函数也做为第一输入参数。因此你会看到inventory.comparing(Apple::getWeight);这样“奇怪”的代码.函数

2 如何使用方法引用(method references)对象

其实方法引用是lambda 表达式的一个语法糖。 当lambda只引用一个方法的时候能够经过方法引用(method references)来简化代码。get

(Apple a) -> a.getWeight()  === Apple::getWeight

() -> Thread.currentThread().dumpStack() === Thread.currentThread()::dumpStack

(str, i) -> str.substring(i) === String::substring

(String s) -> System.out.println(s) === System.out::println

3 方法引用的种类string

3.1 it

static method 静态方法引用class

例子 :Integer::parseInt (parsetInt 是一个静态方法)lambda

3.2语法

instance method

例子 : String::length(length() 是一个实例方法)

3.3

实例对象方法引用

例子 :

Person p = new Person

p::getName (p 是一个实例对象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用特定对象实例方法是指通过引用特定对象的实例方法来创建方法引用。在Java中,可以通过使用"对象::方法名"的语法来引用特定对象的实例方法。具体来说,引用特定对象实例方法有以下几个特点: 1. 引用对象的实例方法:可以引用一个对象的特定实例方法。例如,假设有一个名为"obj"的对象,如果要引用该对象的"methodName"方法,可以使用"obj::methodName"。 2. 引用类的静态方法:可以引用一个类的静态方法。例如,假设有一个名为"ClassName"的类,如果要引用该类的"staticMethodName"静态方法,可以使用"ClassName::staticMethodName"。 3. 引用类的实例方法:可以引用一个类的实例方法。例如,假设有一个名为"ClassName"的类,如果要引用该类的"methodName"实例方法,可以使用"ClassName::methodName"。 4. 引用构造方法:可以引用一个类的构造方法。例如,假设有一个名为"ClassName"的类,如果要引用该类的构造方法,可以使用"ClassName::new"。 需要注意的是,引用特定对象实例方法需要满足两个要求: 1. 接口方法的参数比引用方法的参数多一个。 2. 接口方法的第一个参数恰好是调用引用方法的对象或其引用方法所在类的实例。 参考资料: - https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html - https://stackoverflow.com/questions/32855138/how-does-a-method-reference-to-an-instance-method-of-an-arbitrary-object-of-a-p - https://stackoverflow.com/questions/25512532/instance-method-reference-and-lambda-parameters - https://segmentfault.com/a/1190000012269548 - https://blog.csdn.net/qwe125698420/article/details/53415746 - https://blog.csdn.net/learningcoding/article/details/72539918 - https://blog.idrsolutions.com/2015/02/java-8-method-references-explained-5-minutes/<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值