如何在Java中访问Kotlin伴侣对象?

艾莉

我将Java类之一转换为Kotlin和以下类。

class MainApplication : Application() {
    companion object {
        operator fun get(context: Context): MainApplication {
            return context.applicationContext as MainApplication
        }
    }
}

它具有静态功能get

我仍然有Java函数来访问它。

MainApplication application = MainApplication.get(mContext);

当MainApplication使用Java时,这很好。但是不是在Kotlin中的MainApplication时,上面的代码错误

Error:(27, 54) error: cannot find symbol method get(Context)

我如何get在上面的Java代码中访问

马尔钦·科津斯基(MarcinKoziński)

您可以@JvmStatic在伴随对象中的方法上添加注释,以使Kotlin生成静态方法。

class MainApplication : Application() {
    companion object {
        @JvmStatic fun get(context: Context): MainApplication {
            return context.applicationContext as MainApplication
        }
    }
}

然后您可以像转换为Kotlin之前那样从Java访问它:

MainApplication application = MainApplication.get(mContext);

编辑:我觉得有义务添加我最近学到的东西:@JvmStatic实际上并没有移动生成该方法的位置。通过为伴随对象上的方法生成Java的静态方法来复制它。我个人认为这不是很好,并且根据用例可能会产生一些影响,因此有些事情是值得了解的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Kotlin 中测试/访问伴随对象扩展函数?

来自分类Dev

kotlin,如何将扩展功能添加到已定义的类伴侣对象中

来自分类常见问题

Kotlin:类中的对象和伴侣对象之间的区别

来自分类Dev

Kotlin:多个命名伴侣对象

来自分类Dev

如何在 Java 中访问对象数组中的数据?

来自分类Dev

如何在伴侣对象中保留内部变量

来自分类Dev

如何在Java中访问对象列表元素?

来自分类Dev

如何在 Kotlin 中访问枚举值

来自分类Dev

如何在javascript中的对象内访问对象中的对象?

来自分类Dev

如何在angularjs中访问对象数组

来自分类Dev

如何在processing()对象中访问数据

来自分类Dev

如何在PostMan中访问Request对象

来自分类Dev

如何在BackgroundWorker中访问COM对象?

来自分类Dev

如何在PHP对象中访问信息

来自分类Dev

如何在Javascript中访问JSON对象?

来自分类Dev

如何在PHP中访问stdclass对象

来自分类Dev

如何在php对象中访问数据

来自分类Dev

如何在Typescript中访问JSON对象?

来自分类Dev

如何在angularjs中访问对象数组

来自分类Dev

如何在JavaScript中访问对象?

来自分类Dev

如何在PHP对象中访问数组

来自分类Dev

如何在Jquery中访问JSON对象?

来自分类Dev

如何在javascript中访问对象属性?

来自分类Dev

如何在对象中访问外部 .this

来自分类Dev

如何在查询中访问数组的对象?

来自分类Dev

如何在流中解构Kotlin对象

来自分类Dev

如何在kotlin中定义类,成员可以在java派生类中访问

来自分类Dev

我们如何在 kotlin 中访问 java 中的 .class 文件?

来自分类Dev

如何在Dart中访问对象列表中的对象列表