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:
@Serializablefür die Klasse- Standardwerte machen Felder optional
@SerialNamebenennt JSON-Schlüssel um@Transientschließ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
- kotlinx.serialization einrichten
- Serializable-Klassen
- JSON-Kodierung und -Dekodierung
- Benutzerdefinierte Serialisierer