Котлин установил переменную и вызвал метод в главном классе из сопутствующего объекта
Я новичок в Kotlin, и я не понимаю, если / как я могу вызвать функцию или установить переменную из объекта-компаньона:
class MyClass {
public var myVar: Boolean
public fun myFunc(): Int { ... }
companion object {
private fun doStuff(){
myVar = true
myFunc(1)
}
}
}
Я получаю неразрешенную ссылку на myVar = true
а также myFunc(1)
,
1 ответ
Сопутствующий объект - это объект, который не связан ни с одним конкретным экземпляром MyClass
поэтому он не может получить доступ к свойству экземпляра myVar
и функция экземпляра myFunc
без указания экземпляра. Он просто не знает, к какому экземпляру он должен получить доступ.
Если вы действительно хотите сделать это с помощью функции в объекте-компаньоне, вы должны передать ему экземпляр MyClass
также:
companion object {
private fun doStuff(instance: MyClass){
instance.myVar = true
instance.myFunc(1)
}
}