在 Java 7/Android 上向后移植 StreamSupport

Backported StreamSupport on Java 7/Android

我的意思是这个图书馆:http://sourceforge.net/projects/streamsupport/

它意味着与 Java8 流兼容,所以我尝试 运行 来自 Java8 文档的一些示例,如下所示:

IntStream.range(1, 4).forEach(System.out::println);

但是 .range 没有在任何地方定义。来自该库文档:

streamsupport is a backport of the Java 8 java.util.function (functional interfaces) and java.util.stream (streams) API for users of Java 6 or 7 supplemented with selected additions from java.util.concurrent which didn't exist back in Java 6.

但是: - 我找不到任何一个例子如何使用那个向后移植的库 - 如您所见,我也无法使用 Java8.

中最简单的场景

任何人都可以给我一些示例,说明如何使用向后移植的 StreamSupport 或一些 link 文档吗?

[编辑]

import java8.util.function.Consumer;

IntStreams.range(1, 4).forEach(new Consumer<Integer>(){
         public void accept(Integer next){
                 System.out.println(next);
         }
});

错误信息:

Error:(126, 35) error: method forEach in interface IntStream cannot be applied to given types; required: IntConsumer found: > reason: actual argument > cannot be converted to IntConsumer by method invocation conversion

如果我将 Consumer 更改为 IntConsumer:

Error:(127, 59) error: type IntConsumer does not take parameters

我没有使用过这个库,但是,查看代码 (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 风格

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);
                }
});