Что бы я сделал, это оставил LiveData
закрытым и выделил отдельный метод доступа для отмеченного свойства:
private val _entries = MediatorLiveData<List<Entry>>()
val entries: List<Entry>
get() = _entries.value!!
Еще лучше, если вы явно не хотите, чтобы аварийно завершился в этомВ этом случае вы могли бы просто вернуть пустой список:
private val _entries = MediatorLiveData<List<Entry>>()
val entries: List<Entry>
get() = _entries.value.orEmpty()
Тем не менее, смысл LiveData
заключается в использовании наблюдателя, поэтому вы получите обновление только после публикации значения.
РЕДАКТИРОВАТЬ: Если ваша цель состоит в том, чтобы принудительно установить начальное значение, вы можете создать подкласс, который обеспечивает это:
class NonNullMediatorLiveData<T>(initialValue: T) : MediatorLiveData<T>() {
init { value = initialValue }
override fun getValue(): T = super.getValue()!!
override fun setValue(value: T) {
// assert since the parent is defined in Java
super.setValue(value!!)
}
}