Ответ
@Parcelize — это аннотация Kotlin, которая автоматически генерирует код для Parcelable, упрощая сериализацию объектов.
Преимущества:
- Избавляет от ручного написания
Parcelable(меньше boilerplate-кода). - Работает с
data classи обычными классами. - Поддерживает вложенные объекты (если они тоже
Parcelable).
Пример:
@Parcelize
data class User(val name: String, val age: Int) : Parcelable
// Использование в Intent
val intent = Intent(this, DetailActivity::class.java).apply {
putExtra("user", user)
}
Ограничения:
- Не поддерживает
@Transientполя (используйте@IgnoredOnParcel). - Для сложных случаев (например, кастомная логика сериализации) придется писать
Parcelableвручную.