Несоответствие типов: выводимый тип-T, но Котлин.Любой ожидался

У меня есть следующий код:

val map = HashMap<Int, Any>()
fun <T> test(t: T) = map.put(0, t) // Type mismatch: inferred type is T but kotlin.Any was expected

но каждый класс Kotlin имеет любой как суперкласс, так почему эта ошибка?

1 ответов


T является nullable в этой функции. Вы должны явно указать, что он не является nullable.

fun <T : Any> test(t: T) = map.put(0, t)