It seems that Kotlin is exposing a KClassImpl to me rather than the real type.
For example:
val TYPE_TO_BYTES = mapOf(Boolean::class to 1, Byte::class to 1, Short::class to 2)
inline fun <reified T> read(address: Long): T {
val type = T::class
val bytes = TYPE_TO_BYTES.getRaw(type) // null
...
}
Yet when I call methods on T::class they seem correct; for example T::class.simpleName does give me the proper values.
If I print type it shows kotlin.reflect.jvm.internal.KClassImpl, thus the reason TYPE_TO_BYTES doesn't work correctly.
I "patched" this by both mapping and getting using qualifiedName but this isn't as elegant and isn't as safe as possible for my use case.
Aucun commentaire:
Enregistrer un commentaire