Kotlin的類
class Lizi {
var name: String = ""
var age: Int = 0
companion object {
}
}
對於 Kotlin
的 class
要知道獲取的到底是什麼,可以利用 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>