У меня есть следующий код:
class Countries {
var list: MutableList<String>? = null
}
val countries = Countries()
if (countries.list!!.isNotEmpty()) {
}
Во время выполнения это вызовет исключение, потому что список пуст.Вместо этого я могу сделать это:
if ((countries.list != null) && countries.list!!.isNotEmpty()) {
}
Если бы у меня был логический член с именем areInitialized, который мог иметь значение null, я мог бы создать инфиксную функцию, например:
infix fun Any?.ifTrue(block: () -> Unit) {
if ((this != null) && this == true) block()
}
, а затем использовать ее какthis:
countries.areInitialized ifTrue {
}
Но я не могу создать что-то похожее для изменяемого списка.
Но я ненавижу повторять этот тест для нуля в поле члена в других частяхкод.Есть ли в Котлине более простой способ сделать это?