android - 而不是字符串方法返回 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, requestUrl, 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
。但我不明白如何解决这个问题
解决方案
推荐阅读
- r - ggplot中多列的饼图
- graphql - graphQL + gatsby:查询 Image 或 mp4 的字段
- java - 蓝牙未与其他设备自动配对
- c# - Web 应用程序用户身份验证的最安全方式
- javascript - 提交谷歌表单时电子邮件发送器出现问题
- c++ - 多线程 gtkmm 应用程序的最简单示例
- regex - 为什么我的正则表达式在 PowerShell 中不起作用?
- javascript - Meteor MongoDB 设置每个文档的数组字段
- discord.js - 有没有一种简单的方法可以使用 Discord.JS 机器人大规模删除用户的角色?
- java - 通过 JDBC 执行时,mysql LOAD DATA LOCAL INFILE 语法错误