java 8 方法引用(method references)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 8 方法引用(method references)相关的知识,希望对你有一定的参考价值。

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

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

System.out::println

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


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

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

(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 方法引用的种类


3.1 

static method 静态方法引用

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


3.2

instance method

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


3.3

实例对象方法引用

例子 :

Person p = new Person

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


本文出自 “Development” 博客,请务必保留此出处http://jamesdev.blog.51cto.com/2066624/1858767

以上是关于java 8 方法引用(method references)的主要内容,如果未能解决你的问题,请参考以下文章

浅谈Java 8中的方法引用(Method References)

浅析Java 8新特性Method Reference

Java 8Lambda之方法引用(Method References)

Java Stream & Method Reference

方法引用(method reference)

方法引用(Method References)