У меня проблемы с пониманием того, как @Parcelize
работает в Котлине.Согласно документации
будут сериализованы только основные свойства конструктора.
Но когда я сериализую и десериализирую классы с пустыми первичными подрядчиками, он все еще сериализует и десериализует всеполя.Например, ниже класса
@Parcelize
class Node(): Parcelable {
var field: String? = null
}
Поскольку у основного подрядчика нет никаких полей, согласно документации, я должен иметь field = null
всегда после ser / des.Но всякий раз, когда я запускаю приведенные ниже коды,
val before = Node()
before.field = "someField"
val bundle = Bundle().apply{ putParcelable("someKey", before) }
val after = bundle.getParcelable<Node>("someKey")
field
успешно сериализуется и десериализуется и будет иметь значение someField
.Я что-то пропустил или Parcelize
получил обновление, но они не обновили документацию?
Кстати, если я оставлю объявление Node, как указано выше, Android Studio предупредит меня, что field
не будет сериализовано вParcel
.Но это так.