0Pricing
Kotlin Academy · Lektion

Operatoren is und as

Typprüfungen und Casts

Operatoren is und as ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Typen prüfen und Casts durchführen

Kotlin bietet zwei Operatoren für die Arbeit mit Typen zur Laufzeit:

  • is prüft, ob ein Wert einem Typ entspricht
  • as wandelt einen Wert in einen Typ um

Für beide gibt es sichere Varianten, die Sie hier kennenlernen.

Der Operator is

is gibt einen booleschen Wert zurück, der angibt, ob ein Wert einem Typ entspricht.

Er bildet die Grundlage für Smart Casts.

fun main() {
    val x: Any = "hello"
    println(x is String)
    println(x is Int)
}

Negierte Prüfung mit !is

Verwenden Sie !is, um zu prüfen, dass ein Wert NICHT einem bestimmten Typ entspricht.

Das liest sich in Guard Clauses ganz natürlich.

fun main() {
    val x: Any = 42
    if (x !is String) {
        println("not a string")
    }
}

Der Operator as

as führt einen expliziten Cast durch. Wenn der Wert tatsächlich diesem Typ entspricht, erhalten Sie ihn mit dem korrekten Typ zurück.

Verwenden Sie ihn, wenn der Compiler den Typ nicht selbst ableiten kann.

fun main() {
    val x: Any = "hello"
    val s = x as String
    println(s.length)
}

Wenn as fehlschlägt

Wenn der Wert nicht dem Zieltyp entspricht, löst as eine ClassCastException aus.

Dies ist die unsichere Variante. Verwenden Sie sie daher nur, wenn Sie sicher sind.

fun main() {
    val x: Any = 42
    try {
        val s = x as String
        println(s)
    } catch (e: ClassCastException) {
        println("Cannot cast Int to String")
    }
}

Der sichere Cast as?

as? ist der sichere Cast. Er gibt den in den Zieltyp umgewandelten Wert zurück oder null, wenn der Cast nicht möglich ist.

Es wird keine Ausnahme ausgelöst.

fun main() {
    val x: Any = 42
    val s = x as? String
    println(s)
}

Sicherer Cast mit Elvis

Kombinieren Sie as? mit Elvis, um bei einem fehlgeschlagenen Cast einen Ersatzwert bereitzustellen.

Das ist ein übersichtliches Muster ohne Absturzrisiko.

fun main() {
    val x: Any = 42
    val s = (x as? String) ?: "default"
    println(s)
}

is steuert Smart Casts

Nach einer is-Prüfung benötigen Sie normalerweise überhaupt kein as, weil Smart Casts automatisch greifen.

Verwenden Sie explizites as nur, wenn kein Smart Cast möglich ist.

fun main() {
    val x: Any = "smart"
    if (x is String) {
        println(x.uppercase()) // smart cast, no as needed
    }
}

Casts in Collections

Sichere Casts sind beim Filtern gemischter Collections nützlich.

filterIsInstance verwendet intern is, um nur passende Elemente beizubehalten.

fun main() {
    val items: List<Any> = listOf(1, "two", 3, "four")
    val strings = items.filterIsInstance<String>()
    println(strings)
}

Den richtigen Operator auswählen

Eine einfache Orientierung:

  • Sie benötigen einen booleschen Wert? Verwenden Sie is
  • Sie sind sicher, dass der Typ stimmt? Verwenden Sie as
  • Sie sind unsicher? Verwenden Sie as? mit einem Ersatzwert
fun describe(x: Any): String {
    val text = x as? String ?: return "not text"
    return "text of length " + text.length
}

fun main() {
    println(describe("hello"))
    println(describe(99))
}

Alles zusammenführen

Die Typoperatoren geben Ihnen vollständige Kontrolle:

  • is / !is prüfen Typen
  • as führt einen Cast durch, kann aber eine Ausnahme auslösen
  • as? führt einen sicheren Cast durch und gibt bei einem Fehlschlag null zurück
fun main() {
    val values: List<Any> = listOf(1, "hi", 2.5)
    for (v in values) {
        when {
            v is Int -> println("int " + v)
            v is String -> println("string " + v)
            else -> println("other")
        }
    }
}

Kurzer Test

Testen Sie Ihr Verständnis von is und as.

Zusammenfassung

Sie haben die Typoperatoren kennengelernt:

  • is und !is für Typprüfungen
  • as für Casts, die eine Ausnahme auslösen können
  • as? für sichere Casts, die null zurückgeben

Als Nächstes machen Sie when vollständig, um alle Fälle abzudecken.

Häufig gestellte Fragen

Ist die Lektion „Operatoren is und as“ kostenlos?

Ja — der vollständige Text von „Operatoren is und as“ 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 „Operatoren is und as“?

Typprüfungen und Casts 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 3 von 4.

Wie lange dauert die Lektion „Operatoren is und as“?

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. when als Ausdruck
  2. Smart Casts
  3. Operatoren is und as
  4. Vollständiges when
← Zurück zu Kotlin Academy