【问题标题】:Kotlin set variable and call method in main class from companion objectKotlin 从伴随对象的主类中设置变量和调用方法
【发布时间】:2018-05-11 17:48:27
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: kotlin kotlin-companion


    【解决方案1】:

    Companion 对象是与MyClass 的任何特定instance 无关的对象,因此它无法访问instance 属性myVarinstance 函数myFunc 没有指定实例。它只是不知道它应该访问哪个实例。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      相关资源
      最近更新 更多