在Kotlin中覆盖复杂类型的Java方法

我试图实现JsonHttpResponseHandler#onSuccess 。 当我使用:

fun onSuccess(status: Int, headers: Array<Header>?, response: JSONArray?) 

我得到一个意外重写错误,但是当我添加override修饰符时,我得到一个onSuccess overrides nothing错误。 我做错了什么,或者我发现了Kotlin编译器中的错误?

尝试使用“覆盖方法”(在Mac上^O ),它会建议正确的签名。

我想是的

 fun onSuccess(status: Int, headers: Array<out Header>?, response: JSONArray?) 

但我并不确定。

在Kolint M9中,您可以更灵活地重写关于可空性的Java方法。 这是人们误解最多的事情之一,从Kotlin的角度看,Java参数可能是NULL。 在M9中,您可以收到您希望Kotlin如何处理Nullability的参数,而不是从Java的角度看待它们。 所以如果你知道这个参数不是null的话,你可以在没有?的情况下接收它。 以前这会导致检查是否实际上超出了方法并给出了错误,因此现在被认为是等同的。