java8 lambda表示式方法引用

2021-09-01 22:48:16 字數 734 閱讀 1124

比圖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...