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

减少流量时如何返回空

姜森
2023-03-14

给出这个简化的示例代码:

Flux.empty()
  .cast(Integer.class)
  .reduce(Integer.valueOf(1), (i,j) -> i+j)
  .subscribe(System.out::println);

如何实现reduce操作的结果也是空的?

共有1个答案

柯正谊
2023-03-14

您不能使用这个特定的变体。Integer.valueOf(1)的一半目的是提供一个种子,确保即使源是空的,也有一个值。

但是,您可以在没有种子/种子供应商的情况下使用变体:

Flux.empty()
  .cast(Integer.class)
  .reduce((i,j) -> i+j)
  .subscribe(System.out::println);

空序列或单值序列将按原样复制(javadoc可能对此有点不清楚),因此:

  • 上面的代码将生成一个空的Mono
 类似资料:
  • 问题内容: 假设我有一个布尔值流,而我正在编写的reduce操作是||(OR)。我是否可以这样编写它:如果true遇到值,则放弃对至少某些元素的求值? 我正在寻找某种程度的优化(也许是并行流),不一定要完全优化,尽管后者会很棒。 问题答案: 我怀疑您想要这种构造。 你可以看一下 Stream.of(1, 2, 3, 4).peek(System.out::println).anyMatch(i -

  • 我运行jmeter脚本将近一周,今天观察到一件有趣的事情。以下是场景: 概述:我正在逐渐增加应用程序的负载。在上一次测试中,我给应用程序加载了100个用户,今天我将加载增加到150个用户。 150名用户测试结果: > 与上次测试相比,请求的响应时间减少了。(这是个好兆头) 吞吐量急剧下降到上一次测试的一半,负载更少。 我的问题是: > 当我的许多请求失败时,我得到了好的响应时间吗? 注:直到100

  • 我对Spring Reactive编程有点陌生。我试图从I/O得到一个Flux,然后返回一个对象列表,以及从我的服务中返回一个Mono要组合什么。 为了实现这一点,我的初始方法是确保通量是在操作数据之后完成的。 但是上面的语句返回了Mono的一个空格,不确定在这种情况下,那么许多人如何工作。 我觉得这里缺少了一些东西,我应该如何在完成后控制Flux对象。

  • 我试图在流量为空时返回404,类似于这里:WebFlux Functional:如何检测空流量并返回404? 我主要担心的是,当你检查通量是否有元素时,它会发出那个值,而你却松开了它。当我尝试使用switch时,如果服务器响应为空,它就永远不会被调用(我暗暗认为这是因为单声道不是空的,只有主体是空的)。 是否有一种方法可以恢复hasElements中发出的元素,或者让switchIfEmpty只检

  • 我有一连串的弦和空值 我想将它简化为另一个流,其中任何非空字符串序列连接在一起,即像 我发现的第一种方法是创建收集器,首先将完整的输入流减少到具有所有连接字符串列表的单个对象,然后从中创建新流: 但在这种情况下,在任何使用前,如果str2,甚至作为str2。findFirst(),将完全处理输入流。它需要耗费时间和内存的操作,并且在来自某个生成器的无限流上,它将根本不工作 另一种方法-创建将保持中

  • 我正在使用spring boot开发客户端应用程序。在运行spring boot应用程序(使用完全可执行的jar)时,x64服务器的内存占用约为190M,x86服务器的内存占用约为110M。 我的jvm选项是(-xmx64m-xms64m-xx:maxpermsize=64m-server),为什么在x64服务器中,内存占用这么大?如何将内存使用量降低到150M以下? 多谢了。