我有一个Kotlin代码,如下所示,SingleKotlin.instance
可以被其他Kotlin文件调用
class SingleKotlin private constructor(){
companion object {
val instance by lazy {
SingleKotlin()
}
}
}
但是,当我尝试从Java调用
SingleKotlin.instance
时,它表明无法解析符号“instance”我不明白为什么,任何人都可以解释该怎么解决?
最佳答案
只需在字段上方添加@JvmStatic批注(如本文档https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#static-fields中所述)
因此,您的代码应如下所示:
class SingleKotlin private constructor(){
companion object {
@JvmStatic
val instance by lazy {
SingleKotlin()
}
}
}
现在你可以这样称呼它
SingleKotlin.instance