0

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

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

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

4

2 回答 2

5

您必须?在返回类型之后放置:

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

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

于 2019-04-01T05:36:57.127 回答
0

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

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

只需这样做:

override fun call(jso: JSONObject): JSONObject {
    ...
    throw Exception("Error message!")
} 
于 2020-06-20T03:45:39.940 回答