java8中的"Stream"如何工作?

xua*_*nge -9 java functional-programming lambda-calculus java-8 java-stream

我问的原因或原则.

我发现Java8中"流"接口的大多数方法都没有声明为"默认",因此它们没有方法体.例如:

boolean anyMatch(谓词谓词);

boolean allMatch(谓词谓词);

流映射(Function mapper);

正如您在源文件Stream.java中看到的那样.

但是这些没有实体的方法似乎能够在java程序中执行.

你知道为什么吗?

谢谢.

Eug*_*ene 5

abstract class ReferencePipeline<P_IN, P_OUT>
    extends AbstractPipeline<P_IN, P_OUT, Stream<P_OUT>>
    implements Stream<P_OUT>  ...
Run Code Online (Sandbox Code Playgroud)

ReferencePipeline是实现它们的.例如:

@Override
public final boolean anyMatch(Predicate<? super P_OUT> predicate) {
    return evaluate(MatchOps.makeRef(predicate, MatchOps.MatchKind.ANY));
}
Run Code Online (Sandbox Code Playgroud)

  • @xuange那里没有记录,因为它不公开. (3认同)