Junior — Middle
É possível guardar um objeto do tipo data class num Android Bundle?
sobes.tech IA
Resposta da IA
Uma classe de dados em Kotlin pode ser guardada num Android Bundle, mas não diretamente, pois o Bundle suporta apenas certos tipos de dados (primitivos, Serializable, Parcelable, etc.).
Para guardar uma classe de dados no Bundle, deve-se:
- Fazer com que a classe de dados implemente a interface
Parcelable(recomendado para Android). - Ou tornar a classe
Serializable(menos eficiente).
Exemplo com Parcelable (usando o plugin Kotlin Android Extensions ou a biblioteca Parcelize):
@Parcelize
data class User(val name: String, val age: Int) : Parcelable
// Guardar no Bundle
val bundle = Bundle()
bundle.putParcelable("user_key", user)
// Obter do Bundle
val user = bundle.getParcelable<User>("user_key")
Se a classe de dados não implementar Parcelable ou Serializable, não é possível guardá-la diretamente no Bundle.