Size: a a a

StartAndroid Ru Kotlin

2019 February 25

V

Vitali in StartAndroid Ru Kotlin
или создаешь gson с пустого файла?
источник

ИЗ

Иван Захаров... in StartAndroid Ru Kotlin
Vitali
и сделать data class
вот к примеру статья
https://bytes.babbel.com/en/articles/2018-05-25-kotlin-gson-nullability.html

и код оттуда:
data class User(
   val email: String,
   val firstName: String = "<EMPTY>")

fun main(args: Array<String>) {
 val json = "{}"
 val gson = Gson()

 println(gson.fromJson(json, User::class.java))
}
And sure enough the code above prints:
User(email=null, firstName=null)
источник

ИЗ

Иван Захаров... in StartAndroid Ru Kotlin
К сожалению нормальное решение пока найти не получается
источник

V

Vitali in StartAndroid Ru Kotlin
так кончено будут нулы
источник

V

Vitali in StartAndroid Ru Kotlin
потому что ты берешь свой класс пустой и сериализуешь в gson
источник

V

Vitali in StartAndroid Ru Kotlin
кончено будет нул
источник

V

Vitali in StartAndroid Ru Kotlin
мне кажется что так никто не делает
источник

ИЗ

Иван Захаров... in StartAndroid Ru Kotlin
да, с примером облажался
у меня короч в классе с ненуллабл полем получается нулл в нём при десериализации из жсона
источник

V

Vitali in StartAndroid Ru Kotlin
скинь код
источник

V

Vitali in StartAndroid Ru Kotlin
своего ненуллабла класса
источник

ИЗ

Иван Захаров... in StartAndroid Ru Kotlin
Vitali
потому что ты берешь свой класс пустой и сериализуешь в gson
так какого хрена там нулы если везде заданы дефолтные значения как пустые строки?
источник

V

Vitali in StartAndroid Ru Kotlin
пустота это не есть нул?
источник

ИЗ

Иван Захаров... in StartAndroid Ru Kotlin
Vitali
пустота это не есть нул?
"" != null
источник

V

Vitali in StartAndroid Ru Kotlin
для gson это нул
источник

ИЗ

Иван Захаров... in StartAndroid Ru Kotlin
The tricky part comes when trying to understand how can Gson create instances of classes that have no no-args constructor and completely ignore the initialization process. The fact is Gson uses Unsafe.
Believe it or not Unsafe is unsafe. It enables bypassing the object initialization effectively avoiding all the null checks that are generated in the constructor.
Since Kotlin does the null checks in the initialization process allocateInstance will effectively be bypassing them.
источник

V

Vitali in StartAndroid Ru Kotlin
пустое поле он помечает как нулл
источник

V

Vitali in StartAndroid Ru Kotlin
это же gson
источник

V

Vitali in StartAndroid Ru Kotlin
вот
источник

V

Vitali in StartAndroid Ru Kotlin
поставь не ""
источник

V

Vitali in StartAndroid Ru Kotlin
а к примеру
источник