相关疑难解决方法(0)

为什么在使用“具体化”类型时要使用“内联”

我读到的所有关于类型具体化的教程都说我们在使用“具体化”时需要使用“内联”,但没有一个解释原因。

假设我有一个函数:

inline fun <reified T> doSomething(value: T) {
    println("Doing something with type: ${T::class.simpleName}")    
}
Run Code Online (Sandbox Code Playgroud)

据我了解,使用“具体化”可以防止类型擦除。那么为什么我们不能在普通的非内联函数中使用它呢?使用内联将使编译器在调用站点复制上述函数的主体。但为什么我们需要这样的事情发生呢?

generics inline type-erasure kotlin kotlin-reified-type-parameters

4
推荐指数
1
解决办法
458
查看次数