假设我有一个与此类似的 Kotlin 类:
class MyKotlinExample {
val mMyString = MutableLiveData<String>()
}
MutableLiveData
延伸LiveData
但我不想暴露MutableLiveData
到其他班级。他们应该只看到/访问LiveData<String>
作为我的特别String
是否可能,和/或好/建议等?
您可以使用支持财产:
class MyKotlinExample {
private val _myString = MutableLiveData<String>()
val myString: LiveData<String>
get() = _myString
}
您还可以为您的客户提供一个接口,该接口仅提供LiveData<String>
。给定以下课程:
interface LiveData<T> {
val value: T
}
data class MutableLiveData<T>(override var value: T) : LiveData<T>
创建以下接口/实现:
interface MyExampleInterface {
val myString: LiveData<String>
}
class MyExampleClass : MyExampleInterface {
override val myString: MutableLiveData<String> = MutableLiveData("")
}
在内部,您可以访问myString
as MutableLiveData
,并且您可以传递实例MyExampleClass
as MyExampleInterface
所以他们只能访问myString
as LiveData<String>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)