gpt4 book ai didi

android - 如何避免重复常见的可观察配置?

转载 作者:太空狗 更新时间:2023-10-29 16:02:45 25 4
gpt4 key购买 nike

我正在使用 Retrofit 在 Android 中编写 API 客户端,这种代​​码会重复很多次:

myObservableFromRetrofit
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(... print stack trace ...)

我想知道是否有一种技术可以避免重复这些东西。

我围绕改造函数的调用:

public Observable<?> commonObservable(Observable<?> observable) {
return observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(... print stack trace ...)
}

但这会丢失泛型类型信息。

最佳答案

与其包装您的 Observables,您应该使用 compose() 运算符,详见 this blog post .所以你会:

<T> Transformer<T, T> applySchedulers() {  
return observable -> observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(... print stack trace ...)
}

你会这样调用它:

myObservableFromRetrofit
.compose(applySchedulers())

或者这个,如果你在 JDK 8 以下编译:

myObservableFromRetrofit
.compose(this.<YourType>applySchedulers())

关于android - 如何避免重复常见的可观察配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25575801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com