``` abstract class TypeToken<T> inline fun ...
# language-proposals
m
Copy code
abstract class TypeToken<T>

inline fun <reified T: Any> write(obj: T) {
    val token = object : TypeToken<T>() {}
    val objType = (token::class.java.genericSuperclass as ParameterizedType).actualTypeArguments[0]
    val type = ((objType as ParameterizedType).actualTypeArguments[0] as WildcardType).upperBounds[0].typeName
    println("type: $type")
}
👍 1