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()) }
真的很简单!!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容