如何检查 Kotlin 中的泛型类型?

在本文中,我们将了解如何获取 Kotlin 中使用的类的类型。在 Kotlin 中没有直接的方法可以做到这一点。为了检查泛型类型,我们需要创建泛型 class<T>的实例,然后我们可以将其与我们的类进行比较。

示例 – 如何比较 Kotlin 中的泛型类型

对于这个例子,我们将创建一个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("nhooo.com")

}

输出结果

在执行时,它将产生以下输出 -

class java.lang.String

以上是 如何检查 Kotlin 中的泛型类型? 的全部内容, 来源链接: utcz.com/z/297457.html

回到顶部