8

I am trying to make utils for performing network operations in kotlin. I have below code where the primary constructor is taking Command and Context.

I am unable to access command variable in command.execute(JSONObject(jsonObj)), getting below error. I am not sure what is causing an issue?

Unresolved reference: command

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))
            }
        }
    }
}

2 Answers 2

8

A companion object is not part of an instance of a class. You can't access members from a companion object, just like in Java you can't access members from a static method.

Instead, don't use a companion object:

class AsyncService(val command: Command, val context: Context) {

    fun doGet(request: String) {
        doAsync {
            val jsonObj = java.net.URL(request).readText()
            command.execute(JSONObject(jsonObj))
        }
    }
}
Sign up to request clarification or add additional context in comments.

Comments

4

You should pass arguments directly to your companion object function:

class AsyncService {

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.