java.util.stream.Streamable 发生了什么变化?

2022-09-01 23:43:34

像这样的早期javadocs表明存在一个接口,它似乎与a具有相同的关系,就像必须具有。jdk8-eajava.util.stream.StreamableStreamIterableIterator

现在看来我们被困在了,这肯定是不一样的。Supplier<Stream>

发生了什么事?Streamable


答案 1

它已在一段时间前被删除。删除的理由是由Brian Goetz给出的:

目前唯一的实现者是Collection,所有其他流承载方法都提供专用流(chars(),codePoints(),lines()等),其方法名称比“stream”更合适。所以我认为我们应该放弃 Streamable,而将 stream() / parallel() 方法保留在 Collection 上(或者可能将它们向上移动 Iterable)。

此外

我开始认为Streamable没有承担它的重量。我想考虑放弃 Streamable,此时 parallel() 的最基本实现是在 Collection 中,我还建议我们考虑将其重命名为 parallelStream()。

在另一篇文章中,他补充说:

如果所有可迭代的东西都是有效的可流(因为Iterable有一个stream())方法,而所有可迭代的东西都是可迭代的(因为你可以把一个拆分器变成一个迭代器),那么它们不是相同的抽象吗?


答案 2

推荐