В следующем примере я хочу открыть список Int следующим образом:
val test: LiveData<List<Int>>
get() = _test as LiveData<List<Int>>
private var _test = MutableLiveData(mutableListOf<Int>())
или другим способом:
private var _test2 = MutableLiveData(mutableListOf<Int>())
val test2 = _test2 as LiveData<List<Int>>
Оба работают, но всегда есть Unchecked Cast.
Unchecked cast: MutableLiveData<MutableList<Int>!> to LiveData<List<Int>>
Есть ли лучший способ сделать это?
Просто чтобы уточнить:
С использованием emptyList использование может выглядеть так:
class MainViewModel : ViewModel() {
val test: LiveData<List<Int>> get() = _test
private var _test = MutableLiveData(emptyList<Int>())
init {
val myPrivateList = mutableListOf<Int>()
myPrivateList.add(10)
myPrivateList.add(20)
_test.value = myPrivateList
}
}
Я надеялся найти способ сделать это без дополнительного списка (myPrivateList), что-то вроде этого:
class MainViewModel : ViewModel() {
val test: LiveData<List<Int>> get() = _test
private var _test = MutableLiveData(emptyList<Int>())
init {
_test.value?.apply {
add(1)
add(2)
add(3)
}
}
}