Я просто написал код с Котлин, и есть некоторые проблемы, вот тестовый код:Kotlin String переменная в параметре функции auto cast to java.lang.String, почему?
fun testString(s: Any)
{
when(s)
{
Int -> println("Int parameter!")
String -> println("String parameter!")
//Boolean -> println("Not boolean thing!") //Why Boolean cannot use in when?
else -> println("Other object!")
}
}
var ss = "This is actual a Kotlin String!"
println(ss.javaClass.simpleName) //out: String
testString(ss)//out: Other object! Why not String???
Проблема заключается в том, что, когда только напечатать переменную, он показывает ожидаемый результат: String (Kotlin)
, но в testString
функция, выход один будет всегда java.lang.String
, вот почему? Тогда другой меня расстраивает: Boolean не может использовать в when
? и почему? Заранее спасибо!
Это работает для меня, спасибо большое !!! – SpkingR