我正在尝试为 Kotlin 函数返回一个空值。它给了我错误Null cannot be a value of a non-null type。但我希望能够返回 null。虽然看起来函数可以是 void,但它是一个接口覆盖,在这种情况下没有返回值。
override fun call(jso: JSONObject): JSONObject {
...
...
return null
}
我想我可以使用?. ?但是在这种情况下我可以把它放在哪里?
我正在尝试为 Kotlin 函数返回一个空值。它给了我错误Null cannot be a value of a non-null type。但我希望能够返回 null。虽然看起来函数可以是 void,但它是一个接口覆盖,在这种情况下没有返回值。
override fun call(jso: JSONObject): JSONObject {
...
...
return null
}
我想我可以使用?. ?但是在这种情况下我可以把它放在哪里?
您必须?在返回类型之后放置:
override fun call(jso: JSONObject): JSONObject? {
...
return null
}
既然有了override修饰符,还需要改变超类方法的返回类型。
对于那些面临同样问题的人,即使您将返回类型更改为例如 JSONObject?通过收到错误:
返回类型是“JSONObject?”,它不是被覆盖的公共抽象的子类型......
只需这样做:
override fun call(jso: JSONObject): JSONObject {
...
throw Exception("Error message!")
}