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
No answers yet.
Faça login para deixar uma resposta