gpt4 book ai didi

java - RxJava : chaining results from map methods

转载 作者:行者123 更新时间:2023-11-29 04:34:32 25 4
gpt4 key购买 nike

我使用 RxJava 有一段时间了,并且陷入了以下重复的模式:

source
.map(a -> b)
.map(b -> c)
.map(d -> func(a,b,c))

如您所见,我需要在链的较低点上使用先前映射方法的一些结果。我不确定这是否是 Java 限制,因为 lambda 不能引用非最终的外部参数,或者这是对 Rx-Extensions 的内置限制。我当前的解决方案是使用包含 a、b、c 的包装器 - 并将每个包装器添加到 map 中,然后返回包装器类。但是这个方案感觉写不出来。

有没有更好的解决方案?

最佳答案

如果map s 直接相互跟随,您可以将它们压缩到一个 map 中,并将所有中间数据提供给最终函数:

source.map(a -> {
T b = fa(a);
U c = fc(b);
return func(a, b, c);
})

在哪里TUb 的中间值类型和 c分别。

关于java - RxJava : chaining results from map methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42251444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com