如何在 Kotlin 中检查泛型类型?
kotlin mobile developmentapps/applications
在本文中,我们将了解如何获取 Kotlin 中使用的类的类型。Kotlin 中没有直接的方法可以做到这一点。为了检查泛型类型,我们需要创建一个 generic class<T> 的实例,然后将其与我们的类进行比较。
示例
在本例中,我们将创建一个 type<T> 的泛型类,并将我们的变量传递到该类中以检查其类型。
class MyGenericClass<T : Any>(val myclass: Class<T>) {
companion object {
inline operator fun <reified T : Any>invoke() = MyGenericClass(T::class.java)
}
fun check(t: Any) {
when {
myclass.isAssignableFrom(t.javaClass) -> println(t.javaClass)
else -> println(t.javaClass)
}
}
}
fun main(vararg args: String) {
// 它应该返回字符串
MyGenericClass<String>().check("TutorialsPoint.com")
}
输出
执行后,将产生以下输出 −
class java.lang.String

