【问题标题】:How Stream methods in java-8 are implemented?java-8中的Stream方法是如何实现的?
【发布时间】:2016-05-07 21:43:22
【问题描述】:

当我在试验新的 java-8 Stream 时,我想深入了解一下它的方法是如何实现的,所以我查看了 Stream 类的实现,发现所有方法都是抽象的。

我的问题是 distinct()map() 这样的方法是如何工作的,它必须在某个地方有具体的实现,这些方法在哪里?

【问题讨论】:

    标签: java java-8 polymorphism java-stream


    【解决方案1】:

    经过一番调查,我发现我正在寻找的课程是ReferencePipeline,正如Brian Goetz所说,它是从AbstractPipeline扩展而来的, 最好在ReferencePipeline之前看看。

    当我们通过Arrays.stream() 或在List 对象上调用stream() 或任何其他方式创建Stream 时,我们会从此类中获取一个对象。

    所以这只是基本的多态性。

    【讨论】:

    • 哈哈,当我没有看到任何实现时,我最初在想什么,我认为它可能是本机方法或 java-8 中的新东西或某种黑魔法,但事实证明它是只是常规的多态性。
    • 核心实现是AbstractPipeline,由ReferencePipeline、IntPipeline等扩展,进而实现Stream、IntStream等。没有魔法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    相关资源
    最近更新 更多