当我在尝试使用新的java-8 Stream时,我想先看看它的方法是如何实现的,所以我看一下Stream类的实现,发现所有的方法都是抽象的。 / p>
我的问题是像distinct()
和map()
这样的方法是如何工作的,它必须在某处具体实现,这些方法在哪里?
答案 0 :(得分:5)
经过一番调查后发现我正在寻找的课程是ReferencePipeline
,而Brian Goetz所说的课程是从AbstractPipeline
延伸出来的,
最好在ReferencePipeline
之前查看它。
当我们通过Arrays.stream()
创建Stream或在stream()
对象上以任何其他方式调用List
时,我们会从此类中获取对象。
所以它只是基本的多态性。