微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

而不是字符串方法返回 Kotlin.Unit

如何解决而不是字符串方法返回 Kotlin.Unit

我有一个方法应该返回字符串值。返回值正确并显示所需的值字符串,但在片段中我收到了 Kotlin.Unit 而不是该值。 这是我在调试时看到的:

enter image description here

这是我的功能

  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 举报,一经查实,本站将立刻删除。