我正在尝试使用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))
}
}
}
}
答案 0 :(得分:6)
伴侣对象不是类实例的一部分。 您无法从协同对象访问成员,就像在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))
}
}
}
答案 1 :(得分:3)
您应该将参数直接传递给您的伴侣对象函数:
class AsyncService {
companion object {
fun doGet(command: Command, context: Context, request: String) {
doAsync {
val jsonObj = java.net.URL(request).readText()
command.execute(JSONObject(jsonObj))
}
}
}
}