如果要在Android中启动新的Activity,则需要将Activity传递给Intent。但是,不只是像这样传递Kotlin类:
val intent: Intent = Intent(this, SearchActivity::class)
我需要像这样将Kotlin类作为Java类传递:
val intent: Intent = Intent(this, SearchActivity::class.java)
由于我SearchActivity是.kt文件,为什么需要添加此额外的标识符?
SearchActivity
Intent您正在使用的构造函数的第二个参数采用一个java.lang.Class对象。SearchActivity::class返回kotlin.reflect.KClass。您可以java.lang.Class通过访问其java属性从中获得一个。因此,您会看到的语法有些奇怪SearchActivity::class.java。
Intent
java.lang.Class
SearchActivity::class
kotlin.reflect.KClass
java
SearchActivity::class.java