在 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);
}
});
我的意思是这个图书馆: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);
}
});