0Pricing
Kotlin Academy · Lektion

Plattformtypen

Nullbarkeit aus Java

Plattformtypen ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.

Kotlin trifft auf Java

Kotlin läuft auf der JVM und ruft ständig Java-Code auf. Java kennt jedoch kein Konzept für nullable und nicht-null Typen.

Wie behandelt Kotlin also einen Wert, der aus Java kommt? Mit Plattformtypen.

Was ist ein Plattformtyp

Ein Plattformtyp ist ein Typ, den Kotlin aus Java erhält und dessen Nullbarkeit unbekannt ist.

Kotlin schreibt ihn in Fehlermeldungen als String!. Das Ausrufezeichen bedeutet: Der Wert könnte null oder nicht null sein; Kotlin erzwingt keine der beiden Möglichkeiten.

Lockerere Prüfung

Bei Plattformtypen lockert Kotlin seine Nullprüfungen. Sie können den Wert ohne Compilerfehler als nicht-null behandeln.

Der Nachteil: Wenn der Wert tatsächlich null ist, erhalten Sie zur Laufzeit eine NullPointerException.

Sie wählen den Typ

Wenn Sie einen Wert eines Plattformtyps speichern, entscheiden Sie, wie Sie ihn typisieren:

  • als nicht-null String → bequem, aber riskant
  • als nullable String? → sicher und eindeutig

Dieses Kotlin-Beispiel simuliert diese Entscheidung.

fun fromJava(): String? = "value from Java"

fun main() {
    val safe: String? = fromJava()
    println(safe?.length)
}

Die riskante Wahl

Wenn Sie von einem nicht-null Wert ausgehen, die Quelle aber null zurückgibt, tritt der Absturz bei der Zuweisung oder bei der ersten Verwendung auf.

Das ist die versteckte Gefahr von Plattformtypen.

fun fromJava(): String? = null

fun main() {
    try {
        val risky: String = fromJava()!!
        println(risky.length)
    } catch (e: NullPointerException) {
        println("Null came from the Java side")
    }
}

Annotationen helfen

Java-Bibliotheken können Annotationen wie @Nullable und @NotNull verwenden.

Wenn diese vorhanden sind, berücksichtigt Kotlin sie und gibt Ihnen statt eines Plattformtyps einen korrekten String?- oder String-Typ.

Bewährte Praxis: Nullable annehmen

Beim Aufruf von nicht annotiertem Java-Code sollten Sie als sichere Gewohnheit das Ergebnis als nullable behandeln.

Typisieren Sie Ihre Variable mit ? und verwenden Sie Safe Calls, genau wie bei jedem nullable Kotlin-Wert.

fun fromJava(): String? = "data"

fun main() {
    val value: String? = fromJava()
    val length = value?.length ?: 0
    println(length)
}

Defensive Schnittstellen

Behandeln Sie die Java-Schnittstelle als nicht vertrauenswürdig. Validieren Sie Werte direkt beim Eintritt in Ihren Kotlin-Code oder weisen Sie ihnen dort einen Standardwert zu.

Danach arbeitet der restliche Code mit sauberen Kotlin-Typen.

fun fromJava(): String? = null

fun main() {
    val name = fromJava() ?: "default"
    // from here on, name is a clean non-null String
    println(name.uppercase())
}

Warum Kotlin dies erlaubt

Kotlin könnte jeden Java-Wert zwingend als nullable behandeln, aber dadurch würde die Java-Interoperabilität schmerzhaft ausführlich.

Plattformtypen sind ein pragmatischer Kompromiss: Sie bieten Komfort und zugleich die Möglichkeit, strikt vorzugehen.

Plattformtypen erkennen

Sie schreiben String! nicht selbst. Dieser Ausdruck erscheint nur in IDE-Hinweisen und Fehlermeldungen, wenn Sie den Mauszeiger über aus Java stammende Werte bewegen.

Das ! ist Ihr Signal, die Nullbarkeit bewusst festzulegen.

Alles zusammenführen

Plattformtypen bilden die Brücke zwischen Java und Kotlin:

  • Ihre Nullbarkeit ist unbekannt und wird als Type! angezeigt
  • Kotlin lässt Sie nullable oder nicht-null wählen
  • Nehmen Sie bei Unsicherheit nullable an, um sicher zu bleiben
  • Annotationen beseitigen die Unklarheit
fun fromJava(): String? = "safe value"

fun main() {
    val value: String? = fromJava()
    println(value?.uppercase() ?: "missing")
}

Kurzer Test

Überprüfen Sie Ihr Verständnis von Plattformtypen.

Zusammenfassung

Sie haben gelernt, wie Nullbarkeit die Java-Schnittstelle überschreitet:

  • Plattformtypen haben eine unbekannte Nullbarkeit
  • Kotlin lockert die Prüfungen, aber eine falsche Annahme verursacht zur Laufzeit eine NPE
  • Nehmen Sie nullable an und weisen Sie Werte direkt an der Schnittstelle Standardwerte zu
  • Java-Annotationen stellen korrekte Typen wieder her

Damit ist der Deep Dive zur Null-Sicherheit abgeschlossen.

Häufig gestellte Fragen

Ist die Lektion „Plattformtypen“ kostenlos?

Ja — der vollständige Text von „Plattformtypen“ 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 „Plattformtypen“?

Nullbarkeit aus Java 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 4 von 4.

Wie lange dauert die Lektion „Plattformtypen“?

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. Nullable- und Non-Null-Typen
  2. Sichere Aufrufe und Elvis
  3. Der Operator !!
  4. Plattformtypen
← Zurück zu Kotlin Academy