0Pricing
Kotlin Academy · Lektion

Serializable-Klassen

Annotieren Sie Modelle

Serializable-Klassen ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Die Annotation @Serializable

Um eine Klasse serialisierbar zu machen, versehen Sie sie mit @Serializable. Das Compiler-Plugin generiert anschließend einen Serializer dafür.

import kotlinx.serialization.Serializable

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

Funktioniert mit Data Classes

Sie können jede Klasse annotieren, aber Data Classes sind für Modelle die häufigste Wahl, da sie automatisch equals, hashCode und toString generieren.

Alle Konstruktor-Properties werden zu serialisierten Feldern.

Standardwerte

Properties mit Standardwerten werden beim Dekodieren optional. Wenn sie im JSON fehlen, wird der Standardwert verwendet.

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

Nullable-Properties

Nullable-Typen werden auf JSON-null abgebildet. Eine nullable Property ohne Standardwert ist in JSON weiterhin erforderlich (ihr Wert darf jedoch null sein).

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

Felder mit @SerialName umbenennen

JSON-Feldnamen unterscheiden sich häufig von den Kotlin-Namenskonventionen. Verwenden Sie @SerialName, um sie abzubilden.

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

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

Properties mit @Transient ignorieren

Markieren Sie eine Property mit @Transient, um sie von der Serialisierung auszuschließen. Transiente Properties müssen einen Standardwert haben.

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

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

Verschachtelte serialisierbare Klassen

Serialisierbare Klassen können andere serialisierbare Klassen enthalten. Das Plugin verarbeitet den gesamten Objektgraphen automatisch.

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

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

Collections in Modellen

Standard-Collections wie List, Set und Map sind sofort serialisierbar, wenn ihre Elemente serialisierbar sind.

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

Enums werden unterstützt

Enum-Klassen können mit @Serializable annotiert werden und werden standardmäßig anhand ihres Namens serialisiert. Verwenden Sie @SerialName für Einträge, um die Namen anzupassen.

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

Zusammenfassung: Erforderlich oder optional

Eine Property ist in JSON erforderlich, sofern sie keinen Standardwert hat. Die wichtigsten Regeln:

  • Kein Standardwert → erforderlich
  • Standardwert vorhanden → optional
  • @Transient → ignoriert, muss einen Standardwert haben
  • Nullable ohne Standardwert → erforderlich, darf aber null sein

Was nicht direkt serialisiert werden kann

Typen ohne integrierten Serializer (z. B. java.util.Date, java.time.Instant, UUID) benötigen einen benutzerdefinierten Serializer, den Sie später kennenlernen.

Der Versuch, sie ohne einen solchen Serializer zu serialisieren, führt zu einem Compile-Fehler.

Schnelltest

Welche Aussage über @Transient ist korrekt?

Zusammenfassung

Sie haben gelernt, Modelle zu annotieren:

  • @Serializable für die Klasse
  • Standardwerte machen Felder optional
  • @SerialName benennt JSON-Schlüssel um
  • @Transient schließt ein Feld aus (benötigt einen Standardwert)

Als Nächstes: JSON tatsächlich kodieren und dekodieren.

Häufig gestellte Fragen

Ist die Lektion „Serializable-Klassen“ kostenlos?

Ja — der vollständige Text von „Serializable-Klassen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Serializable-Klassen“?

Annotieren Sie Modelle Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Serializable-Klassen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. kotlinx.serialization einrichten
  2. Serializable-Klassen
  3. JSON-Kodierung und -Dekodierung
  4. Benutzerdefinierte Serialisierer
← Zurück zu Kotlin Academy