Kotlin能否获取方法泛型的类型?


#1

如题:
class DatabaseManager {
companion object {
fun query(id: Long): T? {
/** 作数据库查询操作
* 现在的问题是, 在不通过参数传递进来的情况下,如何获取T的类型
*/
return null
}
}
}


#2

不能。只有特化了的才可以反射拿到。


#3

fun query(id: Long): T? {
/** 作数据库查询操作

  • 现在的问题是, 在不通过参数传递进来的情况下,如何获取T的类型
    */
    return … as T
    }
    val result :Model = query()

还可以inline


#4

reified 关键字了解一下?


京ICP备16022265号-2 Kotlin China 2017 - 2018