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类:

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有点奇怪的语法。

07-24 09:46
查看更多