В Kotlin вы можете создать data class
:
data class CountriesResponse(
val count: Int,
val countries: List<Country>,
val error: String)
Затем вы можете использовать его для анализа JSON, например, "{n: 10}".В этом случае у вас будет объект val countries: CountriesResponse
, полученный от Retrofit
, Fuel
или Gson
, который содержит следующие значения: count = 0, countries = null, error = null
.
In Kotlin + Gson - Howчтобы получить пустой список значений NULL для класса данных , вы можете увидеть другой пример.
Когда вы позже попытаетесь использовать countries
, вы получите исключение здесь: val size = countries.countries.size
: "kotlin.TypeCastException:Нуль не может быть приведен к непустому типу kotlin.Int ".Если вы пишете код и используете ?
при доступе к этим полям, Android Studio выделит ?.
и выдаст предупреждение: Unnecessary safe call on a non-null receiver of type List<Country>
.
Итак, должны ли мы использовать ?
в классах данных?Почему приложение может установить null
на ненулевые переменные во время выполнения?