等效於 KClass 的 getClass()函式
Java 允許使用 getClass()
函式解析變數的類,而 Kotlin 允許使用 .javaClass()
函式。KClass 型別相當於 Kotlin 的 Java 的 java.lang.Class
型別。
讓我們看看如何類似地獲取 KClass 的引用。
Kotlin 中 KClass 的 getClass()
等效項
KClass 的 something.getClass()
的等價物是 something::class
。我們可以通過類引用語法來使用它。
類引用的基本功能是獲得對 KClass 的執行時引用。
語法:
val v = Class_Name::class
只有在 Kotlin 1.1 及更高版本中才能使用 ::class
。要在 Kotlin 1.0 中做到這一點,我們需要獲取 Java 類並藉助 .kotlin
屬性將其轉換為 Kotlin 類例項。
在 Kotlin 1.0 中獲取 KClass 例項的語法是:
Class_Name.javaClass.kotlin
我們還可以使用 KClass::class
獲取類物件 kotlin.reflect.KClass
。要獲取當前物件的類,我們可以使用 this::class
。
以下程式碼塊顯示瞭如何在 Kotlin 中解析變數的類。
示例程式碼:
import kotlin.reflect.KClass
fun main(args : Array<String>) {
// this will get us the reference of our KClass
fun<A: Any> A.getClass(): KClass<A> {
return javaClass.kotlin
}
val first_Variable = "This is a String"
val second_Variable = 3
// Since the first variable is String it gives java.lang.String
println("Kotlin type: ${first_Variable.getClass()}")
// Since the second variable is Integer it gives Int
println("Kotlin type: ${second_Variable.getClass().simpleName}")
}
輸出:
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn