- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 StreamSupport为了探索 Java 7 上的流。我将 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>)'
但是并没有解决问题。
有人知道吗?谢谢。
最佳答案
streamsupport从 java.util.Collection
接收 java8.util.stream.Stream
的入口点主要是
1) java8.util.stream.StreamSupport#stream
2) java8.util.stream.StreamSupport#parallelStream
因此,您的代码片段应如下所示:
import java.util.ArrayList;
import java.util.List;
import java8.util.stream.Collectors;
import java8.util.stream.StreamSupport;
public class FinantialStatement {
private List<Rubric> values;
public List<Rubric> getConsolidatedRubrics() {
List<Rubric> rubrics = StreamSupport.stream(values)
.sorted((Rubric r1, Rubric r2) -> r1.getOrder().compareTo(r2.getOrder()))
.collect(Collectors.toCollection(ArrayList::new));
return rubrics;
}
}
编辑:
显然你不能使用 java.util.Collection#stream()
因为那样
a) is a method that only exists in Java 8 and
b) it mingles
java.util.stream.Collectors
with your (correct) java8.util.stream.Collectors import
(免责声明:我是 streamsupport 的维护者)
关于java - StreamSupport 收集器和 Java 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44078976/
我是测试用例的新手,我尝试了多种方法为下面的代码编写测试用例,但从未成功。如何使用Powermockito为下面的代码编写junit测试用例? StreamSupport.stream(irSet.s
我正在尝试使用 StreamSupport为了探索 Java 7 上的流。我将 streamsupport-1.5.4.jar 添加到我的项目中并编写了如下代码: import java8.util.
我正在尝试使用 StreamSupport使用某些 Java 8 API。我的应用程序有 15 的 minSDK 和 25 的 compileSDK 我得到的确切错误是: Caused by: com
我的意思是这个图书馆:http://sourceforge.net/projects/streamsupport/ 它意味着与 Java8 Streams 兼容,所以我尝试运行 Java8 文档中的一
我是一名优秀的程序员,十分优秀!