mg6maciej
04/22/2017, 10:47 AMabstract 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")
}