Lambda系列 語法高階

2021-10-06 21:56:13 字數 1412 閱讀 1236

普通方法的引用

語法格式

構造方法的引用

將lambda表示式的實現指向乙個已經實現的方法,換句話說就是將lambda的實現抽取到乙個方法中。 方法引用分為靜態方法引用非靜態方法引用

public static void main(string args) 

private static int take(int x)

上面的引用方式還可以繼續簡化

lambdasinglereturnsingleparam test02 = test3::take;
lambdasinglereturnsingleparam test03 = x->new test3().take2(x);

private int take2(int x)

靜態方法的引用格式:

類名::方法名

非靜態方法的引用格式:

引數列表->所在類的例項.方法的呼叫

構造方法的引用分為無參構造方法引用和有參構造方法引用,為了驗證這兩種引用,需要建立乙個person類,有兩個引數和兩個構造方法。

public class person 

public person()

}

首先是無參建構函式的引用,定義乙個介面iperson

inte***ce iperson
通過這個介面,使用lambda有三種方式可以實現無參構造方法的引用

// 1. 採用標準寫法,直接返回乙個new person()

iperson iperson = ()->;

// 2. 採用簡寫方式,省去引數列表、大括號以及return

iperson iperson = ()->new person();

// 3. 直接使用要引用的建構函式的類名+雙冒號+new關鍵字

iperson iperson = person::new;

iperson.getperson();

接下來是有參建構函式的引用,定義乙個介面iperson2

inte***ce iperson2
有參構造方法的引用方法與無參相同,只需把無參時使用的介面換成有參介面並且給引數傳值即可

iperson2 iperson2 = person::new;

iperson2.getperson("henkun",20);

注:lambda通過介面中定義的抽象方法是否有參來決定是呼叫物件的有參還是無參構造方法

lambda高階高階 延遲執行

前面的整理我們也已經說到了,使用lambda表示式的主要原因是,將 的執行延遲到乙個合適的時間點。在使用lambda表示式的時候務必記住一點就是說lambda表示式都是延遲執行的。延遲執行 的原因有很多,具體的如下。1,在另外乙個執行緒中執行 2,多次執行 3,在某個演算法的正確時間點上執行 比如排...

學習lambda02 lambda 語法練習

我們來看乙個不同的領域 執行交易的交易員。你的經理讓你為八個查詢找到答案。你能做到嗎?該自己先嘗試一下作為練習。1 找出2011年發生的所有交易,並按交易額排序 從低到高 2 交易員都在哪些不同的城市工作過?3 查詢所有來自於劍橋的交易員,並按姓名排序。4 返回所有交易員的姓名字串,按字母順序排序。...

lambda語法糖入門

lambda是基於函式式程式設計,常用的最常見的函式式程式設計。new thread system.out.println out start 函式簽名 t t boolean predicate predicate s s null s 函式簽名 t t void consumer consume...