我要问原因或原则。
我发现界面的大多数方法" Stream"在Java8中未声明为"默认",因此它们没有方法体。例如:
boolean anyMatch(谓词谓词);
boolean allMatch(谓词谓词);
流图(功能映射器);
正如您在源文件Stream.java中看到的那样。
但是这些没有实体的方法似乎可以在java程序中执行。
你知道为什么吗?
谢谢。
答案 0 :(得分:5)
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));
}