为什么我们编写NextActivity :: class.java虽然这是一个kotlin类?

Sal*_*ani 5 java android kotlin

我们必须用扩展名.java编写这一行,尽管它的扩展名是.kt我认为Kotlin文件转换为java文件但java也转换为字节代码所以我们也可以使用.class文件如果Kotlin代码转换成java码.

NextActivity::class.java NextActivity::class.kt //not worked

btn?.setOnClickListener {
   startActivity(Intent(this, NextActivity::class.java))
}
Run Code Online (Sandbox Code Playgroud)

所以问题是为什么我们写.java NextActivity::class.java

问题来自这里.

Ste*_*llo 6

因为您想访问Java Class的方法。

我认为Kotlin并没有从头实现它们,因此,要访问它们,您必须将kotlin类“反射”为Java类。

NextActivity::class返回KClass引用,并KClass具有属性 javaIntent构造器签名,Intent(Context packageContext, Class cls)因此第二个参数是Classtype,所以最后的答案是这不是扩展,这只是属性。