Avatar ·

Como verificar o tipo de um objeto (instanceof) em Kotlin? Análogo ao Java instanceof

Olá! Comecei a estudar Kotlin depois de Java e me deparei com um problema. Em Java, eu usava constantemente o operador instanceof para verificar se um objeto é uma instância de uma determinada classe. Por exemplo:

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

Mas em Kotlin não consigo encontrar um análogo direto. Tentei escrever obj instanceof String, mas o compilador dá erro. Tentei usar is — parece que funcionou, mas não tenho certeza se está correto.

Aqui está o que escrevi:

fun checkType(obj: Any) {
    // Tentando verificar o tipo
    if (obj is String) {
        // Quero chamar o método length()
        println(obj.length)
    }
}

Este código compilou e funciona. Mas tenho algumas perguntas:

  • Estou usando is corretamente em vez de instanceof?
  • Preciso fazer algo depois