如何在泛型函数中获取返回值?

时间:2018-05-31 14:22:30

标签: generics kotlin

请查看代码示例:

fun <T> query(sql: String, params: JsonArray): T? {
    val row = otherfun(sql, params) 
    return row.mapTo(T)
}

如何传入mapTo(Class klz)函数(它的java函数)正确的参数?

1 个答案:

答案 0 :(得分:3)

您需要将您的功能设为reified(因此inline),然后您可以使用::class.java获取Class个实例:

inline fun <reified T> query(sql: String, params: JsonArray): T? {
    val row = otherfun(sql, params)
    return row.mapTo(T::class.java)
}