rocketraman
12/01/2020, 6:47 PMval stringToColorMapSerializer: KSerializer<Map<String, Color>> = serializer()
However, is it possible to retrieve a serializer generically?
Since class
definitions can't have reified T
, the normal workaround is to pass in a Class<T>
. If I know that T
is an @Serializable
can I get the KSerializer<T>
from Class<T>
?edenman
12/01/2020, 7:43 PMKClass<T>.serializer()
edenman
12/01/2020, 7:43 PMedenman
12/01/2020, 7:43 PMClass
, hmrocketraman
12/01/2020, 8:54 PM<http://java.io|java.io>.Serializable
. KClass
does not.rocketraman
12/01/2020, 9:00 PMKClass<T>.serializer()
is an internal API.edenman
12/01/2020, 9:01 PMedenman
12/01/2020, 9:01 PMedenman
12/01/2020, 9:01 PMrocketraman
12/01/2020, 9:02 PMrocketraman
12/01/2020, 9:03 PMrnett
12/02/2020, 2:36 AMClass<T>.kotlin
? https://kotlinlang.org/docs/reference/reflection.html#interoperability-with-java-reflectionrocketraman
12/02/2020, 6:04 AMrocketraman
12/02/2020, 2:21 PMserializer(clazz.kotlin.starProjectedType) as KSerializer<T>
but that introduces an unchecked cast. Still, I do believe that is better than using an internal API. I created https://github.com/Kotlin/kotlinx.serialization/issues/1228 as a feature request.