Avatar ·

Smart cast to 'Type' is impossible: como corrigir o erro em Kotlin com propriedades mutáveis?

Olá a todos! Sou novo em Kotlin e me deparei com um erro estranho. Tenho uma classe com uma propriedade mutável `var`, e estou tentando fazer uma verificação de tipo com `is`, mas o compilador exibe: "Smart cast to 'String' is impossible, because 'name' is a mutable property that could have been changed by this time". Aqui está meu código: ```kotlin class User { var name: Any = "John" fun printName() { if (name is String) { // Aqui o erro: Smart cast to 'String' is impossible println(name.length) } } } ``` Entendo que `name` é um `var`, mas eu verifiquei seu tipo antes de usar! Por que o compilador não confia em mim? Como corrigir isso? Em Java com a verificação `instanceof` não havia esse problema. Será que estou perdendo algo nos fundamentos do Kotlin? Por favor, me digam como lidar corretamente com essa situação para que o código compile e seja seguro. Desde já, obrigado! <<>>

Por que ocorre o erro Smart cast em Kotlin?

O err