gpt4 book ai didi

android - Kotlin 类型不匹配。预期任何收到的 MyObject

转载 作者:行者123 更新时间:2023-11-30 00:13:36 25 4
gpt4 key购买 nike

我正在制作一个可观察列表 LiveData对象,应包含 Resource对象(https://developer.android.com/topic/libraries/architecture/guide.html#addendum)。我不关心 Resource 是什么类型的数据对象包含。

abstract class LiveResources : LiveData<Resource<Any>>() {
private val mediatorLiveData = MediatorLiveData<Resource<Any>>()
protected val resources = HashSet<LiveData<Resource<Any>>>()

fun addResource(source: LiveData<Resource<Any>>) {
resources.add(source)
mediatorLiveData.addSource(source, resourceObserver)
}

fun removeResource(source: LiveData<Resource<Any>>) {
resources.remove(source)
mediatorLiveData.removeSource(source)
}

private val resourceObserver = Observer<Resource<Any>> {
onSourceChange()
}

abstract fun onSourceChange()
}

不幸的是,当我尝试使用 LiveResources.addResource() 时与 LiveData<Resource<List<String>>>我的 IDE 出现 TypeMismatch 错误,显示 LiveData<Resource<Any>>意料之中。

最佳答案

您的资源(和/或 LiveData)类应该使用通用协方差来定义,以使其工作。像这样:

class Resource<out T> // <- out marks generic type as covariant

关于android - Kotlin 类型不匹配。预期任何收到的 MyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47722788/

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