v79
01/21/2023, 8:37 PMEntity<T>
? Assuming T is @Serializable, how do I write Json.encodeToString(T.serializer(),entity)
? Ideally without reflection because presumably kotlinx.serialization does it without reflection?Adam S
01/21/2023, 8:42 PMT
can’t be type-erased
import kotlinx.serialization.KSerializer
import kotlinx.serialization.modules.SerializersModule
import kotlinx.serialization.serializer
val serializersModule = SerializersModule { }
fun <T> failure() {
// Cannot use 'T' as reified type parameter. Use a class instead.
val serializer: KSerializer<T> = serializersModule.serializer<T>()
}
inline fun <reified T> reified() {
val serializer: KSerializer<T> = serializersModule.serializer<T>()
}
v79
01/21/2023, 8:46 PMephemient
01/21/2023, 9:00 PMSerializersModule.serializer(KType)
functionKType
you can either use typeOf<T>()
where T
is not type-erased, or T::class.createType()
where T
is type-erased but you have access to KClass<T>
, assuming it has no type parametersv79
01/21/2023, 9:13 PM