为什么新的 Spliterators
类出现在 Java 8 中?从 Java 8 开始,我们可以将 static
方法添加到接口(interface)中。
由于 Spliterators
类只有静态方法,在 Spliterator
interface
中声明其所有方法不会更简单吗?
关于 Collectors/Collector
对的相同问题。
谢谢你。
最佳答案
这个决定完全有可能是在没有考虑这种全新的可能性的情况下做出的,而只是遵循了 20 年来的既定模式。
除此之外,向接口(interface)添加 25 到 30 个 static
方法是否真的有用还存在争议。为规范实现提供一些工厂是有意义的,但您应该在某处画一条线。将工厂添加到接口(interface)的所有实现中是不可行的,仅仅因为它们是由同一个库提供的。但这场辩论将是题外话。
此外,Spliterators
不仅提供 static
方法,还提供嵌套类。与 static
方法不同,这些类在 interface
中定义时会污染每个实现类的 namespace 。Collectors
和 Spliterators
也可能包含特定于实现的非 public
方法甚至字段。
关于java - 为什么我们在 Java 8 中有单独的 Spliterators 类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41869266/