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);
发布了90 篇原创文章 · 获赞 284 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41293896/article/details/104078340
今日推荐