我有一个List<TestBuilder> testBuilders;
Test具有Test类型的功能构建
我做了testBuilders.stream().map(Test::build()).collect()
我想在array of Test i.e Test[]
上收集
我不确定collect function
中会发生什么
答案 0 :(得分:4)
您可以使用
whatever.stream().toArray(WhatEverClass[]::new);
根据类型“ {whatever”的对象流”为类型WhatEverClass
的对象创建数组。因此:无需collect()
。
答案 1 :(得分:0)
使用终端操作Stream::toArray
,该操作将项目序列打包到一个数组中。但是,您必须定义提供的生成器IntFunction<A[]>
才能分配返回数组的类型:
#!/usr/bin/env xxx
lambda表达式Test[] array = testBuilders.stream().map(Test::build()).toArray(size -> new Test[size]);
应替换为方法引用:
size -> new Test[size]