【问题标题】:Java - Implementing my own Stream [closed]Java - 实现我自己的 Stream [关闭]
【发布时间】:2017-10-26 07:22:48
【问题描述】:

是否可以实现自定义流? 除了 IntStream 或 LongStream,我还想创建一个 StringStream。

我想添加额外的方法,例如 storeToFile(path)。

我认为实现 Stream 需要做很多工作。标准实现是 java.util.stream.ReferencePipeline,但我不能直接实例化它。 有没有简单的解决办法?

感谢您的帮助。

【问题讨论】:

  • 一个 StringStream 已经存在。这是一个 Stream.
  • 是的,但我想添加额外的方法。例如 storeToFile(String: path).
  • 流是一个接口。所以,是的,您可以创建一个实现该接口的类,或者创建一个扩展 Stream 的接口。它与任何其他界面没有什么不同。

标签: java stream java-8 java-stream


【解决方案1】:

是的,你可以创建任何你想要的流。

扩展接口BaseStream

public interface MyStream extends BaseStream<MyClass,MyStream>

然后实现它

public class DefaultMyStream implements MyStream
{
    //...
}

在编写您的实现时,可能会交叉检查另一个流实现。


我不知道这样做一定有很大的优势。也许有一个有效的用例。无论如何,这是可能的。

【讨论】:

  • 我认为实现 Stream 需要做很多工作。标准实现是 java.util.stream.ReferencePipeline,但我不能直接实例化它。有简单的解决方案吗?
  • 你几乎肯定是对的,但这不是你问的。听起来您应该创建一个新问题或大量编辑这个问题。
  • 感谢您的帮助。
【解决方案2】:

听起来您想要一个自定义的 Collector,而不是 Stream。您可以使用 Stream.of() 从任何东西中创建 Stream,但您需要收集器。

storeToFile 将是一个 StoringToFileCollector 之类的......

【讨论】:

    猜你喜欢
    • 2018-04-24
    • 2020-09-06
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多