我有一个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

08-06 15:31