我有以下代码:
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()
返回以此集合作为其源的顺序流。