java - 尽管这是一个 kotlin 类,为什么我们要编写 NextActivity::class.java ?

标签 java android kotlin

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

NextActivity::class.java NextActivity::class.kt//不起作用

btn?.setOnClickListener {
   startActivity(Intent(this, NextActivity::class.java))
}

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

中编写 .java

问题来自here .

最佳答案

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

我认为它们并不是在 Kotlin 中从头开始重新实现的,因此,为了访问它们,您必须将您的 kotlin 类“反射”为 Java 类。

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

关于java - 尽管这是一个 kotlin 类,为什么我们要编写 NextActivity::class.java ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957340/

相关文章:

java - 使用HtmlUnit作为爬虫

java - 在 SilkTest 中处理 IE8 信息栏

javascript - 通过解析云码功能下载图片

gradle - 由于缺少依赖项,Kotlin buildSrc 在 Gradle 4.10 上失败

安卓撰写。尝试运行基本代码时出错

nullpointerexception - java修改kotlin类内容为null

java - 如何运行 MULE RMI?

java - 使用for循环在地面上绘制方 block

android - 在 View Pager android 中调用按钮点击监听器

android - 如何在 apk 文件中找到用于机器人测试的主要 Activity