У меня есть этот код:
data class Site(val apikey: String, val id: Int) {
companion object {
val INVALID = Site("", 0)
}
lateinit var name: String
lateinit var city: String
lateinit var country: String
}
, затем, позже в моем коде, я присваиваю site.city
значение из базы данных SQLite:
site.city = cursor.getString(3)
Я бы предположил этоне компилируется, потому что cursor.getString
возвращает обнуляемый String
, а строки Котлина по умолчанию не обнуляются.Тем не менее, это хорошо компилируется, но вылетает во время выполнения с:
java.lang.IllegalStateException: cursor.getString (3) не должно быть нулевым
, потому что cursor.getString(3)
возвращает null
(что действительно, данные отсутствуют в базе данных).Я проверил в отладчике, и вызов getString()
работает нормально.