Kotlin使用高阶函数实现多方法回调
生活随笔
收集整理的這篇文章主要介紹了
Kotlin使用高阶函数实现多方法回调
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近項(xiàng)目中開始使用kotlin,遇到的一個(gè)問題就是從多方法回調(diào)的問題
常規(guī)的java回調(diào)如下:
使用kotlin的話,可以使用匿名內(nèi)部類來實(shí)現(xiàn),回調(diào)方法調(diào)用如下:
pubcli void setData() {getData(object : OnRespCallBack<String>() {override fun onSuccess(models: String) {//do success}override fun onFailed(message: String) {super.onFailed(message)//do fail}}) }但是如此使用,很不方便,也體現(xiàn)不出來kotlin簡潔的優(yōu)勢(shì),這時(shí)候就可以考慮使用kotlin的高級(jí)函數(shù)了。
對(duì)于上面的多方法回調(diào),有如下兩種修改方式:
方式一:在java基礎(chǔ)上修改
方式二:用更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()//進(jìn)行網(wǎng)絡(luò)請(qǐng)求或者其他耗時(shí)操作...back.onSuccess(response)//請(qǐng)求失敗時(shí)的回調(diào)...back.onFailed(message) }pubcli void setData() {getData{onSuccess {//do success}onFailed {//do error}} }參考文章:
Kotlin多方法回調(diào)簡化(Lambda表達(dá)式,recyclerView回調(diào))
kotlin 多接口回調(diào)的實(shí)現(xiàn)方式(一)
kotlin 多接口回調(diào)的實(shí)現(xiàn)方式(二)
Kotlin 使用高階函數(shù)實(shí)現(xiàn)回調(diào)
總結(jié)
以上是生活随笔為你收集整理的Kotlin使用高阶函数实现多方法回调的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [MAC]Google Drive下载大
- 下一篇: shields 徽标_纽约公共图书馆的新