繁体   English   中英

Kotlin Returning Null 不能是非空类型的值

[英]Kotlin Returning Null cannot be a value of a non-null type

我正在尝试为 Kotlin 函数返回空值。 它给了我错误Null cannot be a value of a non-null type 但我希望能够返回 null。 虽然看起来该函数可以是空的,但它是一个接口覆盖,在这种情况下没有返回值。

override fun call(jso: JSONObject): JSONObject {
    ...
    ...
    return null
}

我想我可以使用? . 但是我可以把它放在哪里? 在这种情况下?

你必须把? 在返回类型之后:

override fun call(jso: JSONObject): JSONObject? {
    ...
    return null
}

既然你有override修饰符,你还需要改变超类方法的返回类型。

对于那些面临同样问题的人,即使您将返回类型更改为例如 JSONObject,也可以返回 null? 通过得到一个错误:

返回类型是“JSONObject?”,它不是被覆盖的公共抽象的子类型......

只需这样做:

override fun call(jso: JSONObject): JSONObject {
    ...
    throw Exception("Error message!")
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM