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);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值