Avatar ·

Wie überprüft man den Objekttyp (instanceof) in Kotlin? Analog zu Java instanceof

Hallo! Ich habe gerade angefangen, Kotlin nach Java zu lernen und bin auf ein Problem gestoßen. In Java habe ich ständig den Operator instanceof verwendet, um zu überprüfen, ob ein Objekt eine Instanz einer bestimmten Klasse ist. Zum Beispiel:

// Java
if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str.length());
}

Aber in Kotlin kann ich kein direktes Analogon finden. Ich habe versucht, obj instanceof String zu schreiben, aber der Compiler gibt einen Fehler aus. Ich habe versucht, is zu verwenden — es schien zu funktionieren, aber ich bin mir nicht sicher, ob das richtig ist.

Hier ist, was ich geschrieben habe:

fun checkType(obj: Any) {
    // Versuche, den Typ zu überprüfen
    if (obj is String) {
        // Ich möchte die Methode length() aufrufen
        println(obj.length)
    }
}

Dieser Code wurde kompiliert und funktioniert. Aber ich habe ein paar Fragen:

  • Verwende ich is richtig anstelle von instanceof?
  • Muss ich nach der