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 напрямую нельзя.