初識 Kotlin (四) ---- 獲取 Kotlin 中 class 的實例

Kotlin的類

class Lizi {
    var name: String = ""
    var age: Int = 0
    companion object {

    }
}

對於 Kotlinclass 要知道獲取的到底是什麼,可以利用 AS 的類型提示,一目瞭然(IDEA 類型查看快捷鍵 --> Ctrl + Q):

val lizi = Lizi()

val a = Lizi::class//KClass<Lizi>
val b = lizi::class//KClass<out Lizi>

val c = Lizi::class.java//Class<Lizi>
val d = lizi::class.java//Class<out Lizi>

val e = Lizi::javaClass//val e: KProperty1<Lizi, Class<Lizi>
val f = lizi::javaClass//val f: KProperty0<Class<Lizi>>

val g = Lizi.javaClass//val g: Class<Lizi.Companion>, 這裏獲取的是伴生類的class,屬性都在原類
val h = lizi.javaClass//val h: Class<Lizi>//這裏獲取的是 Lizi 類的 class

val i = Lizi.javaClass.kotlin//val i: KClass<Lizi.Companion>
val j = lizi.javaClass.kotlin//val j: KClass<Lizi>

可以看到:

//獲取 Java  的  Class  實例
class Hello //kotlin class

val clazz = Hello::class.java//第一種方式

val hello = Hello()
val clazz2 = hello.javaClass//第二種方式


//獲取 Kotlin 的  Class  實例
val lizi = Lizi()
val j = lizi.javaClass.kotlin//val j: KClass<Lizi>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章