当前位置: 首页 > 知识库问答 >
问题:

供应商重复使用流[副本]

樊桐
2023-03-14

我需要多次使用一个流。我试过这样的东西:

public static void main(String[] args) {

    Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7, 8});
    Supplier<Stream<Integer>> saved = saveStream(stream.filter(e -> e % 2 == 0));

    System.out.println(saved.get().count());
    System.out.println(saved.get().max(Integer::compareTo).get());
    System.out.println(saved.get().min(Integer::compareTo).get());
}

public static Supplier<Stream<Integer>> saveStream(Stream<Integer> stream){
    Supplier<Stream<Integer>> result = new Supplier<Stream<Integer>>() {

        @Override
        public Stream<Integer> get() {
            Stream<Integer> st = stream;
            return st;
        }
    };

    return result;
}

共有1个答案

张和豫
2023-03-14

您的供应商不创建流的新实例,而是多次提供相同的实例。

由于流是单一用途,这种方法不起作用。您必须重新创建流。

 类似资料:
  • 我对这项服务、供应商和工厂有点困惑。AngularJS模块的服务、提供者和工厂之间有什么区别?请讲述并举例说明

  • Oracle 的 Java SE 的 JSSE 实现是包含了一个名为 SunJSSE 的供应商,通过 JCA 来预装和预注册。这个供应商提供以下加密服务: SSL 3.0 和 TLS 1.0 安全协议的实现 最常见 SSL 和 TLS 密码套件的实现,其中包括认证、密钥协议、加密和完整性保护 一个基于 x.509 的密钥管理器的实现,用于从标准的 JCA keystore 中选择合适的认证密钥 一

  • 在我的项目中,我有一些经过手动编辑的作曲家供应商库;我的目的是在我的开发机器上将它们恢复到原始状态。 不幸的是,我触发了一个,因此我没有正确的编写器。不再锁定(已更新)。我找到了作曲家。来自我们的生产系统的锁(与旧的developmentcomposer.lock具有相同的库版本)。 在更换了新的作曲家之后。使用旧的锁,我应该执行什么来确保拥有与以前相同的环境?

  • 寻找如何使用Javalambda函数,以便消费者可以处理供应商提供的所有对象,并在循环和检查时摆脱显式