如何檢查 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP