Avatar ·

Smart cast to 'Type' is impossible: cómo corregir el error en Kotlin con propiedades mutables

¡Hola a todos! Soy nuevo en Kotlin y me encontré con un error confuso. Tengo una clase con una propiedad mutable `var`, y estoy intentando hacer una comprobación de tipo con `is`, pero el compilador muestra: "Smart cast to 'String' is impossible, because 'name' is a mutable property that could have been changed by this time". Aquí está mi código: ```kotlin class User { var name: Any = "John" fun printName() { if (name is String) { // Aquí error: Smart cast to 'String' is impossible println(name.length) } } } ``` Entiendo que `name` es un `var`, pero ¡ya comprobé su tipo antes de usarlo! ¿Por qué el compilador no confía en mí? ¿Cómo solucionarlo? En Java con la comprobación `instanceof` no tenía este problema. ¿Quizás estoy pasando por alto algo básico de Kotlin? Por favor, indíquenme cómo manejar correctamente esta situación para que el código compile y sea seguro. ¡Gracias de antemano! <<>>

¿Por qué ocurre el error Smart cast en Kotlin?

El error