【发布时间】:2020-06-24 10:52:53
【问题描述】:
我有一个基于传递参数返回泛型类型的函数,但我无法设置其默认值。这是我的示例函数:
fun <T : BaseClass> parse(json: String, gson: Class<T> = BaseClass::class): T =
Gson().fromJson(json, gson)
但是,我收到默认参数的类型不匹配错误:预期 Class<T>,找到 Class<BaseClass>。
我可以使用第二个功能实现同样的功能:
fun <T : BaseClass> parse(json: String, gson: Class<T>): T =
Gson().fromJson(json, gson)
fun BaseClass parse(json: String) =
parse(json, BaseClass::class)
这看起来不像 Kotlin 方式。是否可以有默认的泛型参数?谢谢。
【问题讨论】: