I have a function that returns generic type based on passed parameter, but I can't set its default value. Here's example function I have:
fun <T : BaseClass> parse(json: String, gson: Class<T> = BaseClass::class): T =
Gson().fromJson(json, gson)
However, I get type mismatch error for default parameter: expected Class<T>
, found Class<BaseClass>
.
I can achieve same thing using second function:
fun <T : BaseClass> parse(json: String, gson: Class<T>): T =
Gson().fromJson(json, gson)
fun BaseClass parse(json: String) =
parse(json, BaseClass::class)
Which doesn't look Kotlin-way. Is it possible to have default generic parameter? Thanks.