【发布时间】:2021-12-15 00:28:07
【问题描述】:
我读过的所有关于类型具体化的教程都说我们在使用“具体化”时需要使用“内联”,但没有一个解释为什么。
假设我有一个函数:
inline fun <reified T> doSomething(value: T) {
println("Doing something with type: ${T::class.simpleName}")
}
据我了解,使用 'reified' 可以防止类型擦除。那么为什么我们不能在普通的非内联函数中使用它。使用 inlined 将使编译器在调用站点复制上述函数的主体。但是为什么我们需要这样做呢?
【问题讨论】:
标签: kotlin generics inline type-erasure kotlin-reified-type-parameters