我正在尝试使用IntStream
来实例化对象流:
Stream<MyObject> myObjects =
IntStream
.range(0, count)
.map(id -> new MyObject(id));
但它表示无法将MyObject
转换为int
。
答案 0 :(得分:32)
IntStream
class's map
method将int
映射到更多int
s,IntUnaryOperator
(int
到int
),而不是对象。
通常,所有流&#39; map
方法将流的类型映射到自身,mapToXyz
映射到其他类型。
请改为使用mapToObj
method代替IntFunction
(int
代替对象)。
.mapToObj(id -> new MyObject(id));
答案 1 :(得分:0)
Stream stream2 = intStream.mapToObj( i -> new ClassName(i));
这会将intstream
转换为指定对象类型的Stream
,mapToObj
接受一个函数。
有一种方法intStream.boxed()
可以将intStream直接转换为Stream<Integer>