This question already has an answer here:
When we start new activity into kotlin why we put .java in intent instead of .kt
(1个答案)
2年前关闭。
如果要在Android中启动新的Activity,则需要将Activity传递给Intent。但是,不只是像这样传递Kotlin类:
我需要像这样将Kotlin类作为Java类传递:
由于我的
(1个答案)
2年前关闭。
如果要在Android中启动新的Activity,则需要将Activity传递给Intent。但是,不只是像这样传递Kotlin类:
val intent: Intent = Intent(this, SearchActivity::class)
我需要像这样将Kotlin类作为Java类传递:
val intent: Intent = Intent(this, SearchActivity::class.java)
由于我的
SearchActivity
是.kt文件,为什么为什么需要添加此额外的标识符? 最佳答案
您正在使用的Intent
构造函数的第二个参数带有一个java.lang.Class
对象。 SearchActivity::class
返回kotlin.reflect.KClass
。您可以通过访问its java.lang.Class
property从中获得一个java
。因此,您会使用SearchActivity::class.java
有点奇怪的语法。