1 回答

TA貢獻1829條經驗 獲得超9個贊
您沒有在 lambda 中指定返回類型,它是由 Kotlin 推斷的。最后一個示例不起作用,因為函數的返回類型Unit是voidJava 中的。我會嘗試以下方法:
return Publishers.map(chain?.proceed(request), ::processCookie)
private fun processCookie(a: MutableHttpResponse<*>?) : MutableHttpResponse<*>? {
print("something something something")
return a
}
如果你寫它也可能有效
return Publishers.map(chain?.proceed(request)) {
print("something something something")
it
}
我們這里使用 Kotlin 中 Lambda 的默認參數名稱——即it. Kotlin 編譯器將為您推斷類型。Kotlin 還允許將函數的最后一個 lambda 參數移到括號外。
Java 的功能接口的最后一件事,例如Function<T,R>. 您可能需要明確使用名稱,例如
return Publishers.map(chain?.proceed(request), Function<T,R> {
print("something something something")
it
})
whereT和R必須用實際類型替換
添加回答
舉報