如何解决而不是字符串方法返回 Kotlin.Unit
我有一个方法应该返回字符串值。返回值正确并显示所需的值字符串,但在片段中我收到了 Kotlin.Unit 而不是该值。 这是我在调试时看到的:
这是我的功能:
fun getName() {
var name: String? = null
uploadPerson({ res ->
name = res.getJSONObject("person").getString("name")
},{ err ->
Log.d("TAG","error: $err")
})
val id = "5586"
val url =
"https://$id/api/person/get?&$name"
val resRequest = JsonObjectRequest(
Request.Method.GET,requestUrl,null,{ response ->
},{ error ->
}
)
queue.add(resRequest)
}
uploadPerson
函数:
fun uploadPerson(
result: (res: JSONObject) -> Unit,error: ((err: String) -> Unit)? = null
) {
val params = HashMap<String,Any>()
params["id"] = person.id
params["name"] = person.name
val jsonObject = JSONObject(params as Map<*,*>)
val id = "5545"
val requestUrl = "https://id/api/person/UploadPerson";
val jsonObjectRequest =
object : JsonObjectRequest(Request.Method.POST,jsonObject,{ response ->
try {
if (response.getBoolean("success")) {
val resultObj = response.getJSONObject("person")
} else {
}
} catch (e: JSONException) {
e.printstacktrace()
}
uploadResult(response);
},{ error ->
// Todo: Handle error
uploadError?.invoke(error.toString());
}
) {
override fun getHeaders(): MutableMap<String,String> {
return getAuthHeaders()
}
}
queue.add(jsonObjectRequest);
}
我认为这是因为结果 uoloadPerson
函数是 Unit
并且我需要在 getName
函数中返回 String 类型。但我不明白如何解决这个问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。