为什么在Kotlin中开始新的Android活动需要Java类?

Ish*_*rya 0 java android android-intent android-activity kotlin

如果我想在Android中启动一个新的Activity,我需要将Activity传递给Intent.但是,不要像这样传递Kotlin类:

val intent: Intent = Intent(this, SearchActivity::class)
Run Code Online (Sandbox Code Playgroud)

我需要像这样将Kotlin类作为Java类传递:

val intent: Intent = Intent(this, SearchActivity::class.java)
Run Code Online (Sandbox Code Playgroud)

为什么我需要添加这个额外的标识符,因为我SearchActivity是一个.kt文件?

Com*_*are 7

Intent您正在使用的构造函数的第二个参数是一个java.lang.Class对象.SearchActivity::class返回一个kotlin.reflect.KClass.你可以java.lang.Class通过访问它的java属性获得一个.因此,你结束了有点奇怪的语法SearchActivity::class.java.


归档时间:

查看次数:

186 次

最近记录:

7 年,6 月 前