Вы можете использовать предикат, например ::100100
fun testIt(predicate: (Any?) -> Boolean) {
if (predicate(k)) {
println("matches!")
} else println("nope")
}
и назовите его следующим образом:
testIt { it is String }
testIt { it is Int }
Или вы можете использовать тип reified:
inline fun <reified T> testIt() {
when (k) {
is T -> println("matches!")
else -> println("nope")
}
}
и назовите это как:
testIt<String>()
testIt<Int>()
Для простоты я сохранил вашу текущую переменную внутри testIt
-метода ... вы можете захотеть изменить его; -)
Я предположил, что переменная-член выглядит следующим образом: var k : Any? = null