无法将 IntStream 转换为某些对象流

2022-09-01 06:38:12

我正在尝试使用 一个来实例化对象流:IntStream

Stream<MyObject> myObjects = 
       IntStream
        .range(0, count)
        .map(id -> new MyObject(id));

但它说它不能转换为.MyObjectint


答案 1

IntStream 类的 map 方法将 s 映射到更多 s,并使用 ( to ) 而不是对象。intintIntUnaryOperatorintint

通常,所有流的方法都将流的类型映射到自身,并映射到其他类型。mapmapToXyz

请尝试 mapToObj 方法,该方法采用 ( to object)。IntFunctionint

.mapToObj(id -> new MyObject(id));

答案 2
Stream stream2 = intStream.mapToObj( i -> new ClassName(i));

这将转换为指定的对象类型,接受一个函数。intstreamStreammapToObj

有一种方法可以将intStream直接转换为intStream.boxed()Stream<Integer>


推荐