CoreJava(第六章)06-構造器引用

1.構造器引用

構造器引用與方法引用的區別在於:

方法引用:方法引用使用操作符“::”將方法名和對象或者類的名字分隔開來。

構造器引用就是多了一個:方法名爲new。

(1)假如說有一個字符串列表,可以將它轉換成一個Person對象數組。

ArrayList<String> names = aaa;	// 字符串列表
Stream<Person> people = names.stream().map(Person::new);	// person的引用
List<Person> stream = stream.collect(Collectors.toLists());	// person對象數組

以上代碼中重點是:map方法會爲各個列表元素調用Person(String)構造器。

(2)可以用數組類型建立構造器引用。

例如:int[]::new是一個構造器引用,等價於lambda表達式x->new int[x],Java中有一個限制,無法構造泛型類型T的數組。

(3)假設我們需要一個Person對象數組。

// 01.stream有一個toArray方法可以返回數組
// 02.流庫stream利用構造器引用解決了這個問題,我們可以把Person[]:new傳入toArray方法中。
// 03.toArray方法調用這個構造器來得到一個正確類型的數組,然後填充這個數組並返回。
Person[] people = stream.toArray(Person[]::new);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章