Avatar ·

Wie überprüfe ich den Objekttyp (instanceof) in Kotlin?

Hallo zusammen! Ich habe gerade angefangen, Kotlin nach Java zu lernen, und bin auf ein Problem gestoßen. In Java habe ich den Operator `instanceof` verwendet, um den Typ eines Objekts zu überprüfen, zum Beispiel: ```java if (obj instanceof String) { String str = (String) obj; System.out.println(str.length()); } ``` Aber in Kotlin kann ich kein Äquivalent finden. Ich habe versucht, so etwas wie `obj instanceof String` zu schreiben, aber der Compiler gibt einen Fehler aus. Ich weiß, dass es in Kotlin das Schlüsselwort `is` gibt, bin mir aber nicht sicher, wie ich es richtig verwenden soll. Außerdem musste ich in Java nach der `instanceof`-Prüfung den Typ explizit casten, aber in Kotlin, soweit ich verstanden habe, passiert das irgendwie automatisch? Oder nicht? Könnt ihr mir bitte erklären, wie man den Objekttyp in Kotlin richtig überprüft und sicher in den gewünschten Typ umwandelt? Mich interessiert nicht nur die grundlegende Syntax, sondern auch die besten Praktiken. Zum Beispiel, was macht man, wenn man den Typ in einem `when`-Ausdruck überprüfen muss oder bei der Arbeit mit Collections? Vielen Dank im Voraus für eure Hilfe! Beispiel meines Codes, der nicht funktioniert: