首页 文章

Kotlin在伴侣对象的主类中设置变量和调用方法

提问于
浏览
0

我是Kotlin的新手,我不明白是否/如何调用函数或从伴随对象设置变量:

class MyClass {
    public var myVar: Boolean
    public fun myFunc(): Int { ... }

    companion object {
        private fun doStuff(){
            myVar = true
            myFunc(1)
        }        
    }   
}

我在 myVar = truemyFunc(1) 上得到unresolvedReference .

1 回答

  • 0

    Companion对象是一个与 MyClass 的任何特定实例无关的对象,因此它无法在不指定实例的情况下访问实例属性 myVar 和实例函数 myFunc . 它只是不知道它应该访问哪个实例 .

    如果你真的想从伴侣对象中的函数那样做,你应该传递一个 MyClass 的实例:

    companion object {
        private fun doStuff(instance: MyClass){
            instance.myVar = true
            instance.myFunc(1)
        }        
    }
    

相关问题