Kotlin使用高阶函数实现多方法回调
生活随笔
收集整理的這篇文章主要介紹了
Kotlin使用高阶函数实现多方法回调
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近項目中開始使用kotlin,遇到的一個問題就是從多方法回調的問題
常規的java回調如下:
使用kotlin的話,可以使用匿名內部類來實現,回調方法調用如下:
pubcli void setData() {getData(object : OnRespCallBack<String>() {override fun onSuccess(models: String) {//do success}override fun onFailed(message: String) {super.onFailed(message)//do fail}}) }但是如此使用,很不方便,也體現不出來kotlin簡潔的優勢,這時候就可以考慮使用kotlin的高級函數了。
對于上面的多方法回調,有如下兩種修改方式:
方式一:在java基礎上修改
方式二:用更kotlin的方式
class OnCallbackImpl<T>: OnCallback<T> {private lateinit var onSuccessF: (T) -> Unitprivate lateinit var onErrorF: (String) -> Unitfun onSuccess(listener:(T)->Unit) {this.onSuccessF = listener}override fun onSuccess(response: T) {this.onSuccessF(response)}fun onFailed(listener: (String) -> Unit) {this.onErrorF = listener}override fun onFailed(message: String) {this.onErrorF(message)} }fun getData(callback: OnCallbackImpl<String>.() -> Unit) {val back = OnCallbackImpl<String>()back.callback()//進行網絡請求或者其他耗時操作...back.onSuccess(response)//請求失敗時的回調...back.onFailed(message) }pubcli void setData() {getData{onSuccess {//do success}onFailed {//do error}} }參考文章:
Kotlin多方法回調簡化(Lambda表達式,recyclerView回調)
kotlin 多接口回調的實現方式(一)
kotlin 多接口回調的實現方式(二)
Kotlin 使用高階函數實現回調
總結
以上是生活随笔為你收集整理的Kotlin使用高阶函数实现多方法回调的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [MAC]Google Drive下载大
- 下一篇: shields 徽标_纽约公共图书馆的新