为什么新的 Spliterators 类出现在 Java 8 中?从 Java 8 开始,我们可以将 static 方法添加到接口(interface)中。
由于 Spliterators 类只有静态方法,在 Spliterator interface 中声明其所有方法不会更简单吗?

关于 Collectors/Collector 对的相同问题。

谢谢你。

最佳答案

这个决定完全有可能是在没有考虑这种全新的可能性的情况下做出的,而只是遵循了 20 年来的既定模式。

除此之外,向接口(interface)添加 25 到 30 个 static 方法是否真的有用还存在争议。为规范实现提供一些工厂是有意义的,但您应该在某处画一条线。将工厂添加到接口(interface)的所有实现中是不可行的,仅仅因为它们是由同一个库提供的。但这场辩论将是题外话。

此外,Spliterators 不仅提供 static 方法,还提供嵌套类。与 static 方法不同,这些类在 interface 中定义时会污染每个实现类的 namespace 。
CollectorsSpliterators 也可能包含特定于实现的非 public 方法甚至字段。

关于java - 为什么我们在 Java 8 中有单独的 Spliterators 类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41869266/

10-10 17:07