我試圖實現JsonHttpResponseHandler#onSuccess。當我使用:覆蓋Kotlin中複雜類型的Java方法
fun onSuccess(status: Int, headers: Array<Header>?, response: JSONArray?)
我得到一個意外的覆蓋誤差,但是當我添加了override
修改,我得到一個onSuccess overrides nothing
錯誤。我做錯了什麼,或者我在Kotlin編譯器中發現了一個錯誤?
我試圖實現JsonHttpResponseHandler#onSuccess。當我使用:覆蓋Kotlin中複雜類型的Java方法
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,你可以在沒有?的情況下接收它。以前這會導致檢查是否實際覆蓋了方法並給出錯誤,但現在認爲它是等價的。
很好,工作。覆蓋方法默認爲cmd-O,但不是ctrl-O。 – Isaac 2014-10-06 23:44:43
是的,我一直忘記默認的鍵盤映射是「Mac OS X」,而不是「Mac OS X 10.5+」。後者比我的口味更方便,順便說一句 – 2014-10-07 06:17:36