如何檢查 Kotlin 中的泛型型別?


本文中,我們將學習如何獲取 Kotlin 中使用的類的型別。在 Kotlin 中,沒有直接的方法來執行此操作。為了檢查泛型型別,我們需要建立一個泛型類<T> 的例項,然後我們可以將其與我們的類進行比較。

示例

對於此示例,我們將建立一個型別<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) {
   // it should return String
   MyGenericClass<String>().check("TutorialsPoint.com")
}

輸出

執行後,將生成以下輸出 -

class java.lang.String

更新時間:2022 年 3 月 16 日

5K+ 瀏覽量

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.