我有视图模型,我在封装中使用实时数据,建议使用哪一种,为什么?
private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService
private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?>
get() = _licenseStatusFromWebService
无论您使用哪种方式,只要您所指的MutableLiveData
是val
而不是var
,但如果您要修改或重新分配MutableLiveData
到其他getter方法get() =
将返回最新实例,等于方法=
将返回初始实例。
同样,Kotlin内部为你拥有的每个属性构建了一个getter,所以如果你选择equals方法=
的唯一目的是减少生产中的代码,它将没有任何意义。
我认为在ViewModel中直接使用对象是推荐的方法。
private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService
因为,我在我的一些项目中使用这种方法
这只是封装不可变的可变LiveData。在UI中,你应该使用ViewModel中已经准备好的数据,以避免直接从UI修改它。
private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService