0Pricing
Kotlin Academy · Aula

Classes Serializáveis

Anote os modelos

Classes Serializáveis é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.

A anotação @Serializable

Para tornar uma classe serializável, anote-a com @Serializable. Em seguida, o plug-in do compilador gera um serializador para ela.

import kotlinx.serialization.Serializable

@Serializable
data class User(val id: Int, val name: String)

Funciona com classes de dados

Você pode anotar qualquer classe, mas as classes de dados são a escolha mais comum para modelos porque geram automaticamente equals, hashCode e toString.

Todas as propriedades do construtor se tornam campos serializados.

Valores padrão

Propriedades com valores padrão se tornam opcionais durante a decodificação. Se o JSON não as incluir, o valor padrão será usado.

@Serializable
data class Config(
    val host: String,
    val port: Int = 8080,
    val secure: Boolean = false
)

Propriedades anuláveis

Tipos anuláveis correspondem a null no JSON. Uma propriedade anulável sem valor padrão ainda é obrigatória no JSON (mas seu valor pode ser nulo).

@Serializable
data class Profile(
    val name: String,
    val bio: String? = null
)

Renomeando campos com @SerialName

Os nomes dos campos JSON geralmente diferem das convenções de nomenclatura do Kotlin. Use @SerialName para mapeá-los.

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class Account(
    @SerialName("user_id") val userId: Int,
    @SerialName("full_name") val fullName: String
)

Ignorando propriedades com @Transient

Marque uma propriedade com @Transient para excluí-la da serialização. Propriedades transitórias devem ter um valor padrão.

import kotlinx.serialization.Transient
import kotlinx.serialization.Serializable

@Serializable
data class Session(
    val token: String,
    @Transient val cachedAt: Long = 0L
)

Classes serializáveis aninhadas

Classes serializáveis podem conter outras classes serializáveis. O plug-in gerencia todo o grafo automaticamente.

@Serializable
data class Address(val city: String, val zip: String)

@Serializable
data class Company(val name: String, val address: Address)

Coleções nos modelos

Coleções padrão, como List, Set e Map, são serializáveis por padrão quando seus elementos são serializáveis.

@Serializable
data class Team(
    val name: String,
    val members: List<String>,
    val scores: Map<String, Int>
)

Enumerações são compatíveis

Classes de enumeração podem ser anotadas com @Serializable e são serializadas para seus nomes por padrão. Use @SerialName nas entradas para personalizá-las.

@Serializable
enum class Role {
    @SerialName("admin") ADMIN,
    @SerialName("user") USER
}

Resumo: obrigatórias e opcionais

Uma propriedade é obrigatória no JSON, a menos que tenha um valor padrão. Regras principais:

  • Sem valor padrão → obrigatória
  • Com valor padrão → opcional
  • @Transient → ignorada, deve ter um valor padrão
  • Anulável sem valor padrão → obrigatória, mas pode ser nula

O que não pode ser serializado diretamente

Tipos sem um serializador integrado (por exemplo, java.util.Date, java.time.Instant e UUID) precisam de um serializador personalizado, que você aprenderá mais adiante.

Tentar serializá-los sem um serializador causa um erro de compilação.

Verificação rápida

Qual afirmação sobre @Transient está correta?

Recapitulação

Você aprendeu a anotar modelos:

  • @Serializable na classe
  • Valores padrão tornam os campos opcionais
  • @SerialName renomeia chaves JSON
  • @Transient exclui um campo (é necessário um valor padrão)

Em seguida: codificação e decodificação de JSON.

Perguntas Frequentes

A aula “Classes Serializáveis” é grátis?

Sim — o texto completo de “Classes Serializáveis” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.

O que vou aprender em “Classes Serializáveis”?

Anote os modelos Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Academy?

Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Classes Serializáveis”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Academy?

Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configuração de kotlinx.serialization
  2. Classes Serializáveis
  3. Codificação e Decodificação de JSON
  4. Serializadores Personalizados
← Voltar para Kotlin Academy