mine was: ``` interface TypeToken { val type:...
# kodein
a
mine was:
Copy code
interface TypeToken {
    val type: Type
}

abstract class TypeReference<T> protected constructor(): TypeToken {
    override val type: Type by lazy {
        javaClass.getGenericSuperclass().let { superClass ->
            if (superClass is Class<*>) {
                throw IllegalArgumentException("Internal error: TypeReference constructed without actual type information")
            }
            (superClass as ParameterizedType).getActualTypeArguments()[0]
        }
    }
}