我有视图模型,并且我在封装中使用实时数据,建议使用哪一种,为什么?
private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService
private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?>
get() = _licenseStatusFromWebService
3条答案
按热度按时间33qvvth11#
只要你所引用的
MutableLiveData
是val
而不是var
,你用哪种方式使用它都无关紧要,但是如果你要修改或重新分配MutableLiveData
给其他东西,getter方法get() =
将返回最新的示例,equals方法=
将返回初始示例。此外,Kotlin在内部为您拥有的每个属性构建了一个getter,因此如果您选择equals方法
=
的唯一目的是减少生产中的代码,那么它将毫无意义。uelo1irk2#
我认为在ViewModel中直接使用对象是推荐的方法
3yhwsihp3#
这只是从不变的数据中封装可变的LiveData。在UI中,你应该使用ViewModel中已经准备好的数据,以避免直接从UI中修改它。