Kotlin中的实体类型参数可防止类型参数擦除,并允许在运行时知道类型参数。这让下面的代码编译和运行按预期:Kotlin实体类型参数不能用作函数体中的类型参数
inline fun <reified T> isA(value: Any) = value is T
然而,当我尝试使用“T”作为一种类型的参数,而不是独立的,我得到的消息,这是擦除类型。这是由下面的代码是用于说明目的仅表现:
inline fun <reified T> isListOfA(name: String): Boolean {
val candidate = Class.forName(name)
return candidate is List<T>
}
这是由于技术上的限制?如果是这样,那么这个限制是什么?
这不是物化的问题。你甚至不能'列举''。 –