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:
isprüft, ob ein Wert einem Typ entsprichtaswandelt 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/!isprüfen Typenasführt einen Cast durch, kann aber eine Ausnahme auslösenas?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:
isund!isfür Typprüfungenasfür Casts, die eine Ausnahme auslösen könnenas?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
- when als Ausdruck
- Smart Casts
- Operatoren is und as
- Vollständiges when