建议在视图模型androidKotlin中的实时数据中使用getter或just equals

eyh26e7m  于 2023-01-05  发布在  Kotlin
关注(0)|答案(3)|浏览(89)

我有视图模型,并且我在封装中使用实时数据,建议使用哪一种,为什么?

private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService 

private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?>
    get() = _licenseStatusFromWebService
33qvvth1

33qvvth11#

只要你所引用的MutableLiveDataval而不是var,你用哪种方式使用它都无关紧要,但是如果你要修改或重新分配MutableLiveData给其他东西,getter方法get() =将返回最新的示例,equals方法=将返回初始示例。
此外,Kotlin在内部为您拥有的每个属性构建了一个getter,因此如果您选择equals方法=的唯一目的是减少生产中的代码,那么它将毫无意义。

uelo1irk

uelo1irk2#

我认为在ViewModel中直接使用对象是推荐的方法

private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService
  • 因为我在一些项目中使用了这种方法 *
3yhwsihp

3yhwsihp3#

这只是从不变的数据中封装可变的LiveData。在UI中,你应该使用ViewModel中已经准备好的数据,以避免直接从UI中修改它。

private val _licenseStatusFromWebService = MutableLiveData<String?>()
val licenseStatusFromWebService: LiveData<String?> = _licenseStatusFromWebService

相关问题