在Ruby中,如果将Enumerable
模块混合到自己的自定义集合类中,则只需实现each
方法和Enumerable
的所有方法({{1 }},map
,select
等)可以在您自己的课程中使用。
在Java 8中,类库是否有可以继承的接口或抽象类,这样您只需要覆盖一个方法来创建自己的reduce
类?我可以使用Stream
或Stream<T>
生成Stream<T>.generate
个实例,但我希望能够创建自定义Stream.Builder<T>
类(无需进行大量工作)
答案 0 :(得分:1)
我认为继承不是Java中为Stream
设计的方法。因此,您宁愿实现Spliterator
界面并根据通过此类Spliterator呈现的数据创建流,然后通过
StreamSupport.stream(data, parallel);
通过这种方式,您可以将非常特定的数据形式作为流提供,而无需使用您提到的方法将所有数据复制到流中。但是如果你真的需要覆盖一些流行为,事情变得非常奇怪。所以希望这不是你真正需要的。