我的意思是这个库:http://sourceforge.net/projects/streamsupport/
它意味着与Java8 Streams兼容,所以我尝试从Java8文档中运行一些示例,如下所示:
IntStream.range(1, 4).forEach(System.out::println);
但是.range没有在任何地方定义。从该图书馆文件:
streamsupport是Java 8 java.util.function(功能接口)和java.util.stream(streams)API的后端,适用于Java 6或7的用户,并补充了来自java.util.concurrent的选定内容。在Java 6中存在。
但: - 我找不到任何一个例子如何使用该反向移植的库 - 正如您所看到的,我也无法使用Java8中最简单的场景。
有人能举例说明如何使用backported StreamSupport或文档链接吗?
[编辑]
import java8.util.function.Consumer;
IntStreams.range(1, 4).forEach(new Consumer<Integer>(){
public void accept(Integer next){
System.out.println(next);
}
});
错误讯息:
错误:(126,35)错误:接口IntStream中的方法forEach不能 适用于给定类型;必需:IntConsumer发现:&gt;原因:实际论证&gt;无法通过方法转换为IntConsumer 调用转换
如果我将消费者改为IntConsumer:
错误:(127,59)错误:类型IntConsumer不接受参数
答案 0 :(得分:5)
我没有使用过这个库,但是,查看代码(http://sourceforge.net/p/streamsupport/code/ci/default/tree/src/main/java/java8/util/stream/IntStreams.java)我认为这应该可行
import java8.util.stream.IntStreams;
IntStreams.range(1, 4).forEach(System.out::println);
Java 7 Style
import java8.util.stream.IntStreams;
import java8.util.function.IntConsumer;
IntStreams.range(1, 4).forEach(new IntConsumer(){
public void accept(int next){
System.out.println(next);
}
});
已更新已切换为IntConsumer。使用下面的普通消费者
import java8.util.stream.IntStreams;
import java8.util.function.Consumer;
IntStreams.range(1, 4)
.boxed()
.forEach(new Consumer<Integer>(){
public void accept(Integer next){
System.out.println(next);
}
});