Avatar ·

Smart cast to 'Type' is impossible : comment corriger l'erreur en Kotlin avec des propriétés mutables ?

Bonjour à tous ! Je suis débutant en Kotlin et j'ai rencontré une erreur que je ne comprends pas. J'ai une classe avec une propriété mutable `var`, et j'essaie d'effectuer une vérification de type avec `is`, mais le compilateur affiche : "Smart cast to 'String' is impossible, because 'name' is a mutable property that could have been changed by this time". Voici mon code : ```kotlin class User { var name: Any = "John" fun printName() { if (name is String) { // Ici l'erreur : Smart cast to 'String' is impossible println(name.length) } } } ``` Je comprends que `name` est un `var`, mais j'ai vérifié son type avant de l'utiliser ! Pourquoi le compilateur ne me fait-il pas confiance ? Comment corriger cela ? En Java, avec la vérification `instanceof`, je n'avais pas ce problème. Peut-être que j'ai oublié quelque chose dans les bases de Kotlin ? Veuillez m'indiquer comment gérer correctement cette situation pour que le code compile et soit sûr. Merci d'avance ! <<>>

Pourquoi l'erreur Smart cast se produit-elle en Kotlin ?

L'err