Ответ
Да, можно, но с ограничениями. Data class должен реализовывать Parcelable или Serializable.
Пример с Parcelable:
@Parcelize
data class User(val name: String, val age: Int) : Parcelable
// Запись в Bundle
val bundle = Bundle().apply {
putParcelable("user", User("Alex", 25))
}
// Чтение из Bundle
val user = bundle.getParcelable<User>("user")
Ограничения:
- При использовании
Serializableвозможны проблемы с производительностью. - Поля data class должны быть примитивами или поддерживать
Parcelable/Serializable. - Размер Bundle ограничен (обычно 1 МБ для транзакций).
Для сложных объектов лучше использовать другие подходы, например, Room или SharedPreferences.