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