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 是一個實例對象)