Kotlin 結合 Lambda 表達式調用泛型方法

使用 RxJava 時會遇到很多泛型,一不小心就進入泛型地獄,RxJava 遇到 Kotlin + Lambda 表達式,看看效果

以創建 Single 爲例:
  • 沒有 Lambda:
Single.create(object : SingleOnSubscribe<Any>{
    override fun subscribe(emitter: SingleEmitter<Any>) {
        it.onSuccess(Any())
    }
})
  • 有 Lambda1:
Single.create(SingleOnSubscribe<Any> { it.onSuccess(Any()) })
  • 有 Lambda2 泛型放在方法和括號之間:
    這種方式適合方法名唯一或者方法參數數量不同而且參數順序類型不同的情況, 這樣只能使用上面的方式調用了
Single.create<Any> { it.onSuccess(Any()) }
真的很簡單!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章