0

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

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

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

我得到 unresolvedReference onmyVar = truemyFunc(1)

4

1 回答 1

0

伴生对象是与 的任何特定实例无关的对象MyClass,因此如果不指定实例,它就无法访问实例属性myVar实例函数myFunc。它只是不知道它应该访问哪个实例。

如果您真的想从伴随对象中的函数执行此操作,则还应该将其传递给它的实例MyClass

companion object {
    private fun doStuff(instance: MyClass){
        instance.myVar = true
        instance.myFunc(1)
    }        
}   
于 2018-05-11T09:48:27.840 回答