Avatar ·

¿Cómo verificar el tipo de objeto (instanceof) en Kotlin? Análogo de Java instanceof

¡Hola! Acabo de empezar a aprender Kotlin después de Java y me encontré con un problema. En Java usaba constantemente el operador instanceof para verificar si un objeto es una instancia de una clase determinada. Por ejemplo:

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

Pero en Kotlin no puedo encontrar un análogo directo. Intenté escribir obj instanceof String, pero el compilador da un error. Probé usar is — parece que funcionó, pero no estoy seguro de si es correcto.

Esto es lo que escribí:

fun checkType(obj: Any) {
    // Intento verificar el tipo
    if (obj is String) {
        // Quiero llamar al método length()
        println(obj.length)
    }
}

Este código se compiló y funciona. Pero tengo varias preguntas:

  • ¿Estoy usando correctamente is en lugar de instanceof?
  • ¿Es necesario después de