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

使用Android Studio 3.0的Kotlin中的RxJava zipWith IDE错误

锺离慈
2023-03-14

我想创建一个可观测的,它从包含有间隔可观测对象列表的可观测对象中发射一些项目,因此第一个可观测对象的项目将发射一些时间延迟。下面是我的实现:

 val just1 = ArrayList<SomeClass1>()
fun populateJust1() {
just1.add(SomeClass1("23", 23))
just1.add(SomeClass1("24", 24))
just1.add(SomeClass1("25", 25))
}

populateJust1()
Observable.fromIterable(just1)
            .zipWith(Observable.interval(2, TimeUnit.SECONDS)) { item: SomeClass1, interval: Long -> item }
            .subscribe(Consumer<SomeClass1> { someClass1 -> Log.v("someClass1", someClass1.toString()) })

不能用提供的参数调用下列任何函数。拉链((观察者:观察者)→单位)!,((T1:SomeClass1,T2:Long)→R)!) · ,其中R不能推断;U=渴望 · 趣味拉链(其他:((Observer:Observer)→单位)!,拉链:((T1:SomeClass1,T2:U)→R)!):可观察!定义在io.reactivex.observable zipWith(observableSource!,bifunction!) · ,其中R不能推断;U=长! · 趣味拉链(其他:ObservableSource!,拉链:bifunction!):可观察!定义在io.reactivex.observable zipWith((Mutable)iterable!,bifunction!) · ,其中U,R不能推断为 · 有趣的拉链(其他:(可变)可迭代!,拉链:双吸!):可观察!定义在io.reactivex.observable zipWith((可变)iterable!,((T1:SomeClass1,T2:Long)→R)!) · ,其中R不能推断;U=渴望 · 有趣的拉链(其他:(可变)可迭代!,拉链:((T1:SomeClass1,T2:U)→R)!):可观察!在io.reactivex.observable中定义

怎么啦?我刚刚从Java类转换了这段代码,在那里一切都是正确的

共有1个答案

子车鸿才
2023-03-14

Kotlin无法推断zipwithlambda中的类型。

使用bifunction而不是lambda:

data class SomeClass(val a: String, val b: Int)

val list = listOf(SomeClass("1", 1), SomeClass("2", 2))

Observable
        .fromIterable(list)
        .zipWith(Observable.interval(2, TimeUnit.SECONDS),
                BiFunction { item: SomeClass, _: Long -> item })
        .subscribe { Log.v("someClass", it.toString())
 类似资料:
  • 我试图建立一个基本的应用程序使用Kotlin/Anko,但我得到以下重复文件例外 我尝试删除gradle缓存并再次构建项目,但没有任何工作。请告诉我哪里出了问题?

  • 嗨,我是RxJava和Kotlin的新手,我对它有一些概念。 我知道错误是很明显的。所以我知道缺少了什么,但我不知道的是如何处理这个错误。 我尝试添加:,但仍显示相同的错误消息。

  • 我正在做一个静态编程语言Java混合项目。 Gradle版本和插件最近分别升级到3.1.3和4.4。 现在,在编译时,我在一些Kotlin文件中发现了一个错误“未解析引用”。 例如:- 在上面的代码得到编译错误在android. r.id.home作为未解决的参考。 也在 在查找“removeOnGlobalLayoutListener”时获取“unresolved reference”错误 这件

  • 我在ViewModel类中使用这个函数来创建LiveData包装的ArrayList: 提前感谢!

  • 我试图通过静态编程语言教程从Freecode营,但有这个问题的参考。 IntelliJ抱怨说 未解决的引用:main()中sayHello()中的问候语 意外标记(使用';'分隔同一行的表达式),在"Hi"之后 似乎只有通过“=”才能为参数赋值,而不是“:”

  • 我使用的是Gson v2。8.2和改造v2。我有两门课,答案是。kt: 答案ummary.kt: 我正在列表中使用它(在Java中,仍在迁移到Kotlin): 当未被删除时,我得到一个错误:: 删除“val”后: