Kotlin中是否支持声明多个reified泛型类型参数?
Kotlin 完全支持在 inline 函数中定义多个 reified 类型参数,你描述的场景可以正常实现。
你给出的扩展写法基本正确,仅需要修正返回值 Pair 的泛型参数语法,将圆括号替换为尖括号即可,正确的函数声明如下:
inline fun <reified T, reified U> func(column: String): Pair<T, U> { // 函数内部可以正常通过 T::class、U::class 获取两个泛型的实际类型信息 TODO("补充你的业务逻辑实现") }
以下是一个可运行的完整示例,供你参考:
inline fun <reified T, reified U> func(column: String): Pair<T, U> { // 模拟根据列名获取对应值的业务逻辑 val firstVal: Any = when(column) { "user" -> 1001 "course" -> "高等数学" else -> false } val secondVal: Any = when(column) { "user" -> "张三" "course" -> 4.9f else -> "无数据" } // 可选:增加类型校验,避免转换异常 if (firstVal !is T) throw IllegalArgumentException("第一个值类型不匹配,期望类型:${T::class.simpleName}") if (secondVal !is U) throw IllegalArgumentException("第二个值类型不匹配,期望类型:${U::class.simpleName}") return Pair(firstVal, secondVal) } // 调用测试 fun main() { val (userId, userName) = func<Int, String>("user") println("用户ID:$userId,用户名:$userName") // 输出:用户ID:1001,用户名:张三 val (courseName, courseScore) = func<String, Float>("course") println("课程名:$courseName,课程评分:$courseScore") // 输出:课程名:高等数学,课程评分:4.9 }
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

