Android 转换后获取LiveData对象的更好方法是什么?

Android 转换后获取LiveData对象的更好方法是什么?,android,android-livedata,Android,Android Livedata,我目前正在学习一门课程,有一项任务是将LiveData对象(CountDownTimer中的长类型)从observer移动到xml文件。但它必须从Long转换为String 所以给出的代码是: private val _time = MutableLiveData<Long>() val time: LiveData<Long> get() = _time val timeString = Transformations.map(time) { time -&g

我目前正在学习一门课程,有一项任务是将LiveData对象(CountDownTimer中的长类型)从observer移动到xml文件。但它必须从Long转换为String

所以给出的代码是:

private val _time = MutableLiveData<Long>()
val time: LiveData<Long>
    get() = _time

val timeString = Transformations.map(time) { time ->
    DateUtils.formatElapsedTime(time)
}
private val\u time=MutableLiveData()
val时间:LiveData
获取()=\u时间
val timeString=Transformations.map(time){time->
DateUtils.formatElapsedTime(时间)
}
但是使用getter不是更好吗:

private val _time = MutableLiveData<Long>()
val time: LiveData<String>
    get() = Transformations.map(_time) { time ->
        DateUtils.formatElapsedTime(time)
    }
private val\u time=MutableLiveData()
val时间:LiveData
get()=Transformations.map(_time){time->
DateUtils.formatElapsedTime(时间)
}

是否有理由不使用getter,我是否遗漏了什么?

第一种解决方案的思想是保持
time
变量的完整性,因为您可能希望在以后将其用于其他用途。例如,除了打印时间,也许你还想用它做一些计算——在这种情况下,最好保持它的原样


一般来说,您不希望直接修改需要打印或显示在UI中的数据-最好在显示数据时直接进行转换(如果只在代码中的一个位置显示),或者创建一个单独的UI变量来进行转换。

我试图使其看起来一致,所以我甚至没有想到这一点,谢谢你如果答案是你想要的,请将其标记为已接受(箭头下方的复选标记):)