Avatar ·

Smart cast to 'Type' is impossible: Kotlin में परिवर्तनीय गुणों के साथ त्रुटि को कैसे ठीक करें?

सभी को नमस्ते! मैं Kotlin में नया हूँ और एक समझ से परे त्रुटि का सामना किया है। मेरे पास एक mutable property `var` वाला class है, और मैं `is` के माध्यम से type check करने की कोशिश कर रहा हूँ, लेकिन compiler देता है: "Smart cast to 'String' is impossible, because 'name' is a mutable property that could have been changed by this time"। यहाँ मेरा कोड है: ```kotlin class User { var name: Any = "John" fun printName() { if (name is String) { // यहाँ त्रुटि: Smart cast to 'String' is impossible println(name.length) } } } ``` मैं समझता हूँ कि `name` एक `var` है, लेकिन मैंने उपयोग से पहले इसका type check किया! Compiler मुझ पर भरोसा क्यों नहीं करता? इसे कैसे ठीक करें? Java में `instanceof` check के साथ ऐसी कोई समस्या नहीं थी। शायद मैं Kotlin की मूल बातों में कुछ भूल रहा हूँ? कृपया बताएं कि इस स्थिति को सही तरीके से कैसे संभालें ताकि कोड compile हो और सुरक्षित रहे। पहले से धन्यवाद! <<>>

Kotlin में Smart cast त्रुटि क्यों होती है?

त्रुटि