kotlin中的reified关键字有什么用?

kotlin中的reified关键字有什么用?

kotlinreified范型
1
182
小课
小课2022-06-05 17:22
1 个回答

有些场景需要在范型方法中获取范型的真实类型,但是我们却无法直接获取范型的真实类型,比如下面这样编译是不通过的。

fun <T> test(t: T) {
    println(T::class.java)
}

如果不用reified关键字,我们一般会多传入一个参数用来获取范型的真实类型。

fun <T> test(t: T, clazz: Class<T>) {
    println(clazz)
}

如果使用reified关键字,我们就无需多传入参数。

inline fun <reified T> test(t: T) {
    println(T::class.java)
}

使用reified需要注意两点,一是reified只能用于inline方法中,二是包含reifiedinline方法无法在java中调用。更多内容可以参考kotlin范型中的reified关键字

1
小课
小课2022-06-05 17:30
你的回答

内容