我有一个List<TestBuilder> testBuilders; 测试有一个类型为测试的函数构建我做了testBuilders.stream().map(Test::build()).collect()我想在上面收集array of Test i.e Test[]我不确定会发生什么collect function
2 回答

陪伴而非守候
TA贡献1757条经验 获得超8个赞
Stream::toArray
使用将项目序列打包到数组中的终端操作。但是,您必须定义一个提供的生成器IntFunction<A[]>
来分配返回数组的类型:
Test[] array = testBuilders.stream().map(Test::build).toArray(size -> new Test[size]);
lambda 表达式size -> new Test[size]
应替换为方法引用:
Test[] array = testBuilders.stream().map(Test::build).toArray(Test[]::new);

潇潇雨雨
TA贡献1833条经验 获得超4个赞
您可以使用
whatever.stream().toArray(WhatEverClass[]::new);
WhatEverClass
根据该类型的对象的“任何”流为该类型的对象创建一个数组。因此:不需要collect()
任何东西。
添加回答
举报
0/150
提交
取消