Kotlin中的::class, ::class.java,::javaClass的区别

1,425 阅读1分钟

val java = Main::class.java
val kClass = Main::class
val kProperty1 = Main::javaClass
val kotlin = main.javaClass.kotlin
val kClass1 = main::class
val java1 = main::class.java
val javaClass = main.javaClass

image.png

根据提示我们可以知道
Main::class.java 返回的是java Class对象

Main::class 返回的是kotlin Class对象

main::class 返回的是kotlin Class对象

main.javaClass.kotlin 返回的也是kotlin Class对象

main::class.java 返回的是java Class对象

main.javaClass 返回的是java Class对象