Следуя книге Kotlin for Android Developers
, мы сталкиваемся с функцией расширения
fun <T:Any> SelectQueryBuilder.parseList(parser: (Map<String,Any?>) -> T):List<T> = parseList(object:MapRowParser<T>{
override fun parseRow(columns: Map<String, Any?>): T = parser(columns)
})
И я не уверен, зачем нужен :Any
.
Если я напишу это как fun <T> SelectQueryBuilder.parseList(...)
, Android Studio жалуется, что
, тогда как эта ошибка исчезает, когда вы добавляете обратно :Any
.
Теперь, насколько я понимаю, T
должен подразумевать T:Any
, хотя это явно не так. Это почему? И какая разница?