java8 中的 "Stream" 如何工作?
How does "Stream" in java8 work?
请教原因或原理
我发现Java8中接口"Stream"的大部分方法都没有声明为"default",所以它们没有方法body.For 例子:
boolean anyMatch(Predicate 谓词);
boolean allMatch(Predicate 谓词);
流图(函数映射器);
正如您在源文件中看到的那样Stream.java。
但是这些没有主体的方法似乎可以在java程序中执行。
你知道为什么吗?
谢谢。
abstract class ReferencePipeline<P_IN, P_OUT>
extends AbstractPipeline<P_IN, P_OUT, Stream<P_OUT>>
implements Stream<P_OUT> ...
实现它们的是 ReferencePipeline
。例如:
@Override
public final boolean anyMatch(Predicate<? super P_OUT> predicate) {
return evaluate(MatchOps.makeRef(predicate, MatchOps.MatchKind.ANY));
}
请教原因或原理
我发现Java8中接口"Stream"的大部分方法都没有声明为"default",所以它们没有方法body.For 例子:
boolean anyMatch(Predicate 谓词);
boolean allMatch(Predicate 谓词);
流图(函数映射器);
正如您在源文件中看到的那样Stream.java。
但是这些没有主体的方法似乎可以在java程序中执行。
你知道为什么吗?
谢谢。
abstract class ReferencePipeline<P_IN, P_OUT>
extends AbstractPipeline<P_IN, P_OUT, Stream<P_OUT>>
implements Stream<P_OUT> ...
实现它们的是 ReferencePipeline
。例如:
@Override
public final boolean anyMatch(Predicate<? super P_OUT> predicate) {
return evaluate(MatchOps.makeRef(predicate, MatchOps.MatchKind.ANY));
}