Как получить доступ к переменной экземпляра в статическом сопутствующем объекте в Koltin

Я пытаюсь сделать utils для выполнения сетевых операций в kotlin . У меня есть код ниже, где основной конструктор принимает Command и Context .

Я не могу получить доступ к командной переменной в command.execute(JSONObject(jsonObj)) , получив ниже ошибки. Я не уверен, что вызывает проблему?

Неразрешенная ссылка: команда

 class AsyncService(val command: Command, val context: Context) { companion object { fun doGet(request: String) { doAsync { val jsonObj = java.net.URL(request).readText() command.execute(JSONObject(jsonObj)) } } } } 

Сопутствующий объект не является частью экземпляра класса. Вы не можете получить доступ к элементам из объекта-компаньона, так же как и в Java, вы не можете получить доступ к элементам из статического метода.

Вместо этого не используйте объект-компаньон:

 class AsyncService(val command: Command, val context: Context) { fun doGet(request: String) { doAsync { val jsonObj = java.net.URL(request).readText() command.execute(JSONObject(jsonObj)) } } } 

Вы должны передать аргументы непосредственно своей функции сопутствующего объекта:

 class AsyncService { companion object { fun doGet(command: Command, context: Context, request: String) { doAsync { val jsonObj = java.net.URL(request).readText() command.execute(JSONObject(jsonObj)) } } } } 
Intereting Posts
KotlinNullPointerException: внутри onCreateOptionsMenu не удается найти searchView; андроид Kotlin Ошибка: не удалось найти org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7 Проблемы с конфигурацией Spring Data Solr Настроить отображение kotlin, class.java не работает Преобразует ли файл Kotlin в java, добавив к нему java-код и вернувшись обратно в Kotlin так же, как добавление кода непосредственно в файл Kotlin? Как создать простой таймер, чтобы выполнять удовольствие каждую секунду, используя setInterval? Использование @ EnableNeo4jRepositories (basePackageClasses = "myApp") в Котлине Почему приложение не работает под Android 4.x в Котлине? Параметр типа Ketlin reified не используется Nullability и LiveData с Kotlin Обработчик аннотации Java / Kotlin: получить тип аннотированного поля / свойства Обнаруживать цвет с фонового изображения с помощью андроида IllegalStateException: активность была уничтожена (уровень API <21) Плагин kapt не работает с gradle-script-kotlin Выразить «супер» дженерики в функциональных типах Котлина?