平面映射需要不必要的强制转换



我有以下代码:

List<Person> p = groups.parallelStream()
.filter(group -> group.size > 0)
.flatMap(group -> {
R r = callAsyncMethod(group.id);
if (r != null) {
return Stream.of(anotherAsyncCall(r))
}
return Stream.empty();
})
.collect(Collectors.toList());

anotherAsyncCall返回Person的列表。现在,我收到一个编译错误,这需要我将List<Person>更改为List<Object>

我想知道我在这里做错了什么。

Stream 可以包含任何类型值,例如下面的 stream 包含字符串列表和整数列表

Stream.of(List.of("Deadpool","Iron Man"),List.of(1,2));

流的

@SafeVarargs
static <T> Stream<T> of(T... values)

返回其元素为指定值的顺序有序流。

但是 stream(( 方法只返回一个以这个集合作为其源的顺序 Stream。

default Stream<E> stream()

返回以此集合作为其源的顺序流。

最新更新