eclipse StreamSupport collector和java 7
我试图使用StreamSupport来探索Java7上的流。我已将streamsupport-1.5.4.jar
添加到我的项目中,并编写了如下代码:
import java8.util.stream.Collectors;
public class FinantialStatement {
private List<Rubric> values;
public List<Rubric> getConsolidatedRubrics() {
List<Rubric> rubrics = values.stream().sorted((Rubric r1, Rubric r2) -> r1.getOrder().compareTo(r2.getOrder())).collect(Collectors.toCollection(ArrayList::new));
return rubrics;
}
}
我收到以下错误:
Type mismatch: cannot convert from Collector<Object,capture#1-of
?,Collection<Object>> to Collector<? super Rubric,A,R>
我已经尝试应用Eclipse提出的提示
Add cast to '(Collector<? super Rubric, A, R>)'
但这并没有解决问题
有人知道吗?谢谢
# 1 楼答案
从
java.util.Collection
接收java8.util.stream.Stream
的streamsupport入口点主要是1)java8.util.stream.StreamSupport#stream
2)java8.util.stream.StreamSupport#parallelStream
因此,您的代码片段应该如下所示:
编辑:
显然你不能使用
java.util.Collection#stream()
,因为(免责声明:我是streamsupport的维护者)