gpt4 book ai didi

kotlin - RxJava Zip 可观察可迭代

转载 作者:行者123 更新时间:2023-12-02 07:09:57 24 4
gpt4 key购买 nike

我想压缩 Observable<List<Int>> 的列表.

fun testObservablezip() {
val jobs = mutableListOf<Observable<List<Int>>>()
for (i in 0 until 100 step 10) {
val job = Observable.fromArray(listOf(i + 1, i + 2, i + 3))
jobs.add(job)
}

val listMerger = Function<Array<List<Int>>, List<Int>> { it.flatMap { it } }
Observable.zip(jobs, listMerger) // No valid function parameters
}

尽管 listMerger已定义其输入和输出,zip不接受。

最佳答案

zip的函数在 RxJava 中定义为 Function<? super Object[], R>所以你必须指定一个对象数组,而不是 List<Int>数组,然后将对象数组元素转换回 List<Int> :

import io.reactivex.Observable
import io.reactivex.functions.Function;

fun testObservablezip() {
val jobs = mutableListOf<Observable<List<Int>>>()
for (i in 0 until 100 step 10) {
val job = Observable.fromArray(listOf(i + 1, i + 2, i + 3))
jobs.add(job)
}

val listMerger = Function<Array<Any>, List<Int>> {
it.flatMap { it as List<Int> } }

Observable.zip(jobs, listMerger) // No valid function parameters
}

关于kotlin - RxJava Zip 可观察可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50423572/

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