Avatar ·

Comment vérifier le type d'un objet (instanceof) en Kotlin ? Équivalent Java instanceof

Bonjour ! Je viens de commencer à apprendre Kotlin après Java et j'ai rencontré un problème. En Java, j'utilisais constamment l'opérateur instanceof pour vérifier si un objet est une instance d'une classe donnée. Par exemple :

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

Mais en Kotlin, je ne trouve pas d'équivalent direct. J'ai essayé d'écrire obj instanceof String, mais le compilateur génère une erreur. J'ai essayé d'utiliser is — cela semble fonctionner, mais je ne suis pas sûr que ce soit correct.

Voici ce que j'ai écrit :

fun checkType(obj: Any) {
    // J'essaie de vérifier le type
    if (obj is String) {
        // Je veux appeler la méthode length()
        println(obj.length)
    }
}

Ce code a été compilé et fonctionne. Mais j'ai plusieurs questions :

  • Est-ce que j'utilise correctement is à la place de instanceof ?
  • Est-ce qu'il faut après