Kotlin Webview文件上传中的空检查问题

时间:2018-09-16 11:40:22

标签: webview kotlin

我正在尝试使用webview上传文件。我被卡在这一步。

我的完整代码=

override fun onImageChosen(chosenImage: ChosenImage) {
    runOnUiThread(Runnable {
        Log.d("CI:", chosenImage.filePathOriginal)
        if (null == mUploadMessage && mUploadMessageArray == null) return@Runnable
        val result = Uri.fromFile(File(chosenImage.fileThumbnail))
        if (mUploadMessage != null) {
            mUploadMessage!!.onReceiveValue(result)
            mUploadMessage = null
        } else if (mUploadMessageArray != null) {
            val uris = arrayOfNulls<Uri>(1)
            uris[0] = result
            mUploadMessageArray!!.onReceiveValue(uris)
        }
    })
}

问题代码块=

val uris = arrayOfNulls<Uri>(1)
                uris[0] = result
                mUploadMessageArray!!.onReceiveValue(uris)

将鼠标悬停在uris(onReceiveValue(uris))上时,会出现以下错误

Type mismatch.
Required:
Array<Uri>!
Found:
Array<Uri?>

1 个答案:

答案 0 :(得分:0)

您可以用不同的方式初始化uri

val uris = arrayOf(result)

不应出现可空性问题

问题(很明显)是,kotlin无法智能广播数组分配,因为不能确定是否将Nullable类型的每个元素都分配给非null值