比圖integer::intvalue,作為函式傳遞。。。這就是方法引用
當使用function作為方法引數時,如下:
public r map(functionfunction)
呼叫該方法的時候,傳遞的是integer.intvalue的方法引用,如下:
lambdatestlambdatest = new lambdatest<>(123);
int integer = lambdatest.map(integer::intvalue);
lambdatestlambdatest = new lambdatest<>(123);
//新增下面這一行
functionfunction=t->t.intvalue();
int integer = lambdatest.map(function);
然後相當於匿名內部類的**如下:
lambdatestlambdatest = new lambdatest<>(123);
functionfunction=new function()
};int integer = lambdatest.map(function);
所以說,不論是lambda表示式還是方法引用,都是相當於在匿名內部類重寫的方法中呼叫該lambbda表示式或者引用的方法
參考自:
Java 8 Lambda表示式 方法引用
方法引用讓你可以重複使用現有的方法定義,並向lambda一樣傳遞它們。在一些情況下,比起使用lambda表示式,它們似乎更易讀,感覺也更自然。方法引用可以被看作僅僅呼叫特定方法的lambda的一種快捷寫法。它的基本思想是,如果乙個lambda代表的只是 直接呼叫這個方法 那最好還是用名稱來呼叫它,而...
java8 Lambda表示式的使用
lambda表示式表達更為簡潔,但是效率並不比原來高,多用於多執行緒中簡化頻繁使用的匿名內部類函式。lambda表示式並非所有場景都適用。下面介紹lambda的使用,首先定義乙個介面 inte ce ilike 作為比較,首先先介紹其他的方式實現介面,首先建乙個測試類,其中分別實現介面 public...
Java8之Lambda表示式
intstream.range 1000,10000 filter v v 1000 v 1000 v 1000 v 100 v 100 v 100 v 10 v 10 v 10 v foreach system.out println 上面的表示式中多處用到lamnda表示式以及stream ap...