我将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代码中访问?
您可以@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] 删除。
我来说两句