我有一个场景,其中第二个单声道依赖于first stMono和ThridMono调用依赖于第二个单声道输出。
我写的代码如下。
firstMono.flatMap{
val secondMono = callWebservice(firstMono)
val thrirdMono = secondMono.flatMap { secondMonoResponse ->
if (secondMonoResponse.getName.equals("ABC")) {
callAnotherWebService(secondMon)
} else {
secondMono
}
}
}
我怎样才能避免这里的第二个平面图?。有没有办法在没有嵌套平面图的情况下做到这一点。我应该只在满足条件的情况下调用serrdMono。
答案可能会有所不同,具体取决于每个Mono的确切性能。然而,当我查看代码片段时,我没有看到在第一个Mono上调用flatMap{}
的意义,所以它可能看起来如下:
callWebservice(firstMono)
.flatMap { secondMonoResponse ->
if (secondMonoResponse.name == "ABC" ) {
callAnotherWebService(secondMono)
} else {
secondMono
}
}
另一方面,这里也可以使用. zip方法:
val secondMono = callWebservice(firstMono)
Mono.zip(firstMono, callWebservice(firstMono))
.flatMap {
val secondMonoResponse = it.t2
if (secondMonoResponse.name == "ABC" ) {
callAnotherWebService(secondMono)
} else {
secondMono
}
}
注意:我已经删除了val shirdMono
,因为上面的代码片段不会编译,因为返回类型是Unit(而不是Mono)。
假设我有一个返回列表的博客帖子api 从列表创建可观察 将每个可观察拆分为
我试图使用for理解以下内容: 我试过这个: 有没有办法用< code > for-comprehensive 简洁地写进去?
所以目前我看到的是这样的: 这是我目前编写的Jolt规范(编辑): 以及转换后的输出: 任何帮助都是非常感谢的。
问题内容: 我有一个嵌套与包含任何键,或值。我想像下面这样压扁它们。 数据如下: 地图看起来像: 地图的展平应如下所示: 注意: 嵌套数组或映射的级别未知,可能会超过2个级别。 问题答案: 您可以使用递归来展平。每次遇到a时,通过展平来递归; 当您遇到时,请对其进行迭代,然后将索引添加到当前键中。否则,可以简单地设置一个值。在行动中看到下面的代码在这里。
我有一门java课 在上面的场景中,示例具有子示例,这又是示例列表。此嵌套可以是 n 级。我想实现的是有一个示例列表,即扁平化上面的对象并将所有示例收集到最终列表中(收集所有n级示例)。一个明显的方法是递归。在Java中有什么方法可以更有效地实现它。我尝试了一些java 8概念,但它们不符合要求。
我正在寻找一种用函数式编程方法替换嵌套foreach循环的方法。情况是这样的: 目前我的代码是这样的: 这将生成如下所示的输出: 有谁知道如何用函数式编程替代方案替换foreach代码块?