gpt4 book ai didi

android - 可空性和使用 Kotlin 的 LiveData

转载 作者:IT老高 更新时间:2023-10-28 13:33:56 34 4
gpt4 key购买 nike

我想将 LiveData 与 Kotlin 一起使用,并且具有不应为空的值。你如何处理这个问题?也许是 LiveData 的包装器?在这里寻找好的模式..举个例子:

class NetworkDefinitionProvider : MutableLiveData<NetworkDefinition>() {
val allDefinitions = mutableListOf(RinkebyNetworkDefinition(), MainnetNetworkDefinition(), RopstenNetworkDefinition())

init {
value = allDefinitions.first()
}

fun setCurrent(value: NetworkDefinition) {
setValue(value)
}
}

我知道访问时 value 不会为 null - 但我总是必须检查 null 或周围有这些丑陋的!!。

最佳答案

我改进不大answer幸运编码员。这个实现根本不能接受空值。

class NonNullMutableLiveData<T: Any>(initValue: T): MutableLiveData<T>() {

init {
value = initValue
}

override fun getValue(): T {
return super.getValue()!!
}

override fun setValue(value: T) {
super.setValue(value)
}

fun observe(owner: LifecycleOwner, body: (T) -> Unit) {
observe(owner, Observer<T> { t -> body(t!!) })
}

override fun postValue(value: T) {
super.postValue(value)
}
}

关于android - 可空性和使用 Kotlin 的 LiveData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132520/

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