Sobes.tech
Back to questions
Junior — Middle
70

Можно ли сохранить объект типа data class в Android Bundle?

Answer from AI

sobes.tech AI

Объект типа data class в Kotlin можно сохранить в Android Bundle, но напрямую — нет, так как Bundle поддерживает только определённые типы данных (примитивы, Serializable, Parcelable и др.).

Чтобы сохранить data class в Bundle, нужно:

  • Сделать data class реализующим интерфейс Parcelable (рекомендуется для Android).
  • Либо сделать data class Serializable (менее эффективно).

Пример с Parcelable (используя плагин Kotlin Android Extensions или библиотеку Parcelize):

@Parcelize
data class User(val name: String, val age: Int) : Parcelable

// Сохранение в Bundle
val bundle = Bundle()
bundle.putParcelable("user_key", user)

// Получение из Bundle
val user = bundle.getParcelable<User>("user_key")

Если data class не реализует Parcelable или Serializable, сохранить его в Bundle напрямую нельзя.